Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Дальнейшее использование подгруженного документа

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Опять траблы :\
CTAPu4OK
Отправлено: 28 Ноября, 2010 - 19:38:17
Post Id



Гость


Покинул форум
Сообщений всего: 67
Дата рег-ции: Июль 2008  


Помог: 0 раз(а)




Скоро с ума сойду.
Имеется код:
CODE (javascript):
скопировать код в буфер обмена
  1. function move(get_id, gx, gy, gti, delay) {  
  2.  
  3.         var cont = document.getElementById('mapss');  
  4.         var loading = document.getElementById('loading');  
  5.  
  6.         cont.innerHTML = loading.innerHTML;  
  7.  
  8.         var http = createRequestObject();  
  9.         if( http )    
  10.         {  
  11.             try {
  12.             http.open('post', url()+'maps/maps/mapsmovepost', true);
  13.             http.onreadystatechange = function ()    
  14.             {  
  15.                 if(http.readyState == 4)    
  16.                 {
  17.                     if(http.status == 200) {
  18.                         cont.innerHTML = http.responseText;
  19.                     } else {
  20.                         cont.innerHTML = 'No connect to server, please wait or refresh page.';
  21.                     }
  22.                 }  
  23.             }  
  24.            
  25.             http.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
  26.             http.send("get_id="+get_id+"&gx="+gx+"&gy="+gy+"&gti="+gti+"&delay="+delay);
  27.            
  28.             } catch (e) {
  29.                 cont.innerHTML = 'No connect to server, please wait or refresh page.';
  30.             }
  31.            
  32.         }  
  33.         else    
  34.         {  
  35.             document.location = url();  
  36.         }
  37.     }  
  38.  
  39.     // создание ajax объекта  
  40.     function createRequestObject()    
  41.     {  
  42.         try { return new XMLHttpRequest() }  
  43.         catch(e)    
  44.         {  
  45.             try { return new ActiveXObject('Msxml2.XMLHTTP') }  
  46.             catch(e)    
  47.             {  
  48.                 try { return new ActiveXObject('Microsoft.XMLHTTP') }  
  49.                 catch(e) { return null; }  
  50.             }  
  51.         }  
  52.     }


Он отправляет данные в контроллер, контроллер подгружает вид где находится карта.
Загружается нормально, но после подгрузки карты я не могу получить доступ из JS к подгруженной карте, т.е. из файла func.js я даже аттребут не могу изменить в подгруженном файле

Так же было и с JQuery с функцией load()

Как с этим бороться ? как получить доступ к подгруженным файлам ?

прикрепил файл с html документами
Скачать файл: rar.rar
Скачан раз: 118

(Отредактировано автором: 28 Ноября, 2010 - 20:36:10)

 
 Top
JustUserR
Отправлено: 29 Ноября, 2010 - 15:57:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




CTAPu4OK пишет:
Как с этим бороться ? как получить доступ к подгруженным файлам ?
Процесс осуществления контроля доступа к загружаемым элементом являеся специфической задачей - поскольку включает в себе приведение представление элементов программного кода в статческие информационные поля - с предовращением обеспеченя передачи им управления потоком В качестве возможного варината решения в таком случае является использованя контроллера опережающей обработки - которые может являться tick-функций обеспечивающая проверку состояния загрузки документа - и осуществляющая предотвращение его выполнения путем внесение грамматической ошибки в его JS-код или реализации удаления исполняемого потока


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Phantik
Отправлено: 29 Ноября, 2010 - 16:26:41
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Если я все правильно понял, и если код правильно работает, то у вас в элемент с id="mapss" записался ответ сервера, как html код. А что дальше вы хотите сделать?
 
 Top
CTAPu4OK
Отправлено: 30 Ноября, 2010 - 00:37:41
Post Id



Гость


Покинул форум
Сообщений всего: 67
Дата рег-ции: Июль 2008  


Помог: 0 раз(а)




JustUserR пишет:
Процесс осуществления контроля доступа к загружаемым элементом являеся специфической задачей - поскольку включает в себе приведение представление элементов программного кода в статческие информационные поля - с предовращением обеспеченя передачи им управления потоком В качестве возможного варината решения в таком случае является использованя контроллера опережающей обработки - которые может являться tick-функций обеспечивающая проверку состояния загрузки документа - и осуществляющая предотвращение его выполнения путем внесение грамматической ошибки в его JS-код или реализации удаления исполняемого потока


Как я понял функция в JS постоянно выполняется, из за этого я не могу получить доступ к подгруженному файлу, в итоге после выполнения функции нужно внести граммотическую ошибку ?

Phantik пишет:
Если я все правильно понял, и если код правильно работает, то у вас в элемент с id="mapss" записался ответ сервера, как html код. А что дальше вы хотите сделать?

Да, дальше я хочу из JS получить дуступ к этому файлу, например сменить атребут в подгруженном файле


Еще вопросик, почему httpm.abort(); не прирывает работу ? по идее он отключает соединение с XMLHttpRequest если asyc равен true

(Отредактировано автором: 30 Ноября, 2010 - 00:53:32)

 
 Top
JustUserR
Отправлено: 30 Ноября, 2010 - 00:41:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Phantik пишет:
Элемент с id="mapss" записался ответ сервера, как html код.
В случае если целевой задачей является осуществление перевода информационных полей динамически загруженной HTML-страницы в контейнерный элемент текущего документа - то в качестве возможного варианта допустимо использование iframe-контейнера позволяющего обеспечить браузерное выполнение целевого HTML-документа - с возможностью предварительной фильтрации активного кода и выборки представления элементов в требуемый интервал времени


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Phantik
Отправлено: 30 Ноября, 2010 - 09:24:16
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




CTAPu4OK пишет:

Phantik пишет:
Если я все правильно понял, и если код правильно работает, то у вас в элемент с id="mapss" записался ответ сервера, как html код. А что дальше вы хотите сделать?

Да, дальше я хочу из JS получить дуступ к этому файлу, например сменить атребут в подгруженном файле


Ну так у вас подгрузились элементы имеющие свои теги, атрибуты, id, классы и.т.д.
обращайтесь к ним так же, например через
getElementById
getElementsByTagName
getElementsByClassName

(Отредактировано автором: 30 Ноября, 2010 - 09:25:13)

 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Ноября, 2010 - 13:50:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Phantik пишет:
обращайтесь к ним так же

Таки нет. Дело в том что подгруженый аяксом контент с точки зрения жабаскрипта отсутствует в проиндексированой DOM-модели документа, поэтому перед использованием нужна переиндексация элементов. Как это сделать? JustUserR знает, я в чистом жабаскрипте не помню как это сделать, а jquery через .alive();
 
 Top
JustUserR
Отправлено: 30 Ноября, 2010 - 21:44:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




DeepVarvar пишет:
Дело в том что подгруженый аяксом контент с точки зрения жабаскрипта отсутствует в проиндексированой DOM-модели документа, поэтому перед использованием нужна переиндексация элементов. Как это сделать? JustUserR знает
Существуют различные варианта решения обеспечивающие приведение строкового или компонентного представления целевых элементов в реальное содержимое DOM-модели в момент осуществления инициализации соответствующего события - в качестве оптимального средства включающего возможности внутренней машины рендеринга браузера целесообразно использование iframe-компонента с реализацией двойной загрузки - в первом этапе обеспечивается создание нового Iframe-элемента как блочного объекта и загрузка в него содержимого требуемого ресурса - после этого на втором этапе реализуется ожидание рендеринга новой модели и обеспечения доступа к ней посредством свойства contentWindow.document у соответствующего объекта


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB