Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Асинхронный запрос

21K
16 мая 2013 года
Yuriel
1 / / 21.11.2006
Ребят если кто поможет - респект и уважуха, как грится. Если кратко, то проблемка вот в чем:
Например есть страничка:


 
Код:
...
<div id = "myDiv">
</div>
<div onclick = "alert(XXX)"></div>
...
После Асинхронного запроса (...document.getElementById('myDiv').innerHTML = ...) получается вот что:

 
Код:
...
<div id = "myDiv">
...
      <script>
               var XXX = 'Ну когда же все это заработает наконец';
      </script>
...
</div>
<div onclick = "alert(XXX)"></div>
...
И при нажатии на нижний <div> хотелось бы увидеть alert. Но мы его не видим, так как мне кажется код вставленый innerHTML посде асинхронного запроса работать не будет. Если можно тыкните меня носом как обновить код скрипта, что-бы alert увидел вставленную переменную XXX,
P.S. При щелчке правой кнопкой "показать код элемента" (chrome) исправно показывает вставленный innerHTML код скрипта. Может как то асинхронно обновить страницу?
8
16 мая 2013 года
mfender
3.5K / / 15.06.2005
Если всё так как написано, то вообще непонятно зачем вставлять какой-то HTML-код в документ. Разве не проще переменные создать в callback'е запроса?

Например:
 
Код:
<?php
/** Сервер возвращает такой объект  */
echo json_encode(array("XXX"=>iconv("cp1251", "utf-8", "Ну когда же все это заработает наконец"),
"XXY"=>iconv("cp1251", "utf-8", "Вроде работает")));
?>
Код:
/** В браузере как-то так  */
XXX = '';
XXY = '';

var req = new XMLHttpRequest();
req.open(
    'GET',
    'http://.......',
    true
);
req.onreadystatechange = function(){
    var ret = JSON.parse(req.responseText);
    for(var f in ret){
        window[f]=ret[f];
    }
}
req.send();
Таким образом переменным назначаем значение.

Сдаётся мне так проще, нежели мудрить с вставлянием кода.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог