Как вернуть оператор JavaScript в ajax responseText - PullRequest
0 голосов
/ 27 апреля 2011

Например:

На странице HTML


xmlHttpObj.open("GET", "url.php", true);
xmlHttpObj.onreadystatechange = function(){
   ..
   document.getElementById('divInThisPage').innerHTML = xmlHttpObj.responseText;
   ..
}
..
..

function foo(arg){
   alert(arg);
}

В url.php


echo "<input type='button' value='ok' onclick=\"foo('ok')\" />";

Вопрос в том, почему предупреждение не работает?

редактирование: даже если в url.php я вставил встроенный код JavaScript, кнопка все равно не работает


echo "<input type='button' value='ok' onclick=\"alert('ok')\" />";

Ответы [ 2 ]

2 голосов
/ 27 апреля 2011

Я думаю, что вы спрашиваете, почему, когда вы нажимаете кнопку, созданную вашим запросом AJAX, предупреждение не предупреждает.Вероятно, это связано с тем, что обработчик события onclick foo() не зарегистрирован.Это я думаю зависит от браузера - попробуйте в другом браузере, и это может сработать.

В любом случае это не работает, потому что когда вы динамически добавляете HTML на страницу, подобную этой, onclick не регистрируетсяв вашем браузере.Вы можете добавить прослушиватели событий к элементу, подобному этому:

function doAddEventListener(elem, eventName, fn) {
  if(elem.addEventListener ) {
       elem.addEventListener(eventName, fn, false);
    } else if (elem.attachEvent) {
         elem.attachEvent('on'+eventName, fn);
    } 
}

, где fn - это функция, которую вы хотите добавить, то есть foo, и eventName в этом случае будет "щелкнуть",elem - это элемент, к которому вы хотите добавить слушателя.

0 голосов
/ 27 апреля 2011

Только что попробовал тот же код на FF3, и он, кажется, работает просто отлично. Вы уверены, что где-то нет опечатки? Попробуйте использовать firebug для подсказок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...