如何将javascript语句返回到ajax responseText

如何将javascript语句返回到ajax responseText,javascript,ajax,Javascript,Ajax,例如: 在HTML页面中 xmlHttpObj.open("GET", "url.php", true); xmlHttpObj.onreadystatechange = function(){ .. document.getElementById('divInThisPage').innerHTML = xmlHttpObj.responseText; .. } .. .. function foo(arg){ alert(arg); } 在url.php中 e

例如:

在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')\" />";

回声“;

我认为您要问的是,为什么当您单击由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
是您要添加侦听器的元素。

刚刚在FF3上尝试了相同的代码,它似乎工作正常。你确定某处没有打字错误吗?尝试使用firebug寻找线索。

警报在哪里?ajax代码在哪里?请输入更多代码您是否有该页面的实时示例?您的
输入
元素是否已输入到文档中?如果是这样的话,当你点击浏览器时,它是否会显示JS错误?不,我的意思是,为什么当我点击带有“ok”值的按钮时,警报不会工作?@Bagong21:你看到任何JavaScript错误吗?检查浏览器的控制台。