如何将javascript语句返回给ajax responseText

时间:2011-04-27 13:44:50

标签: 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


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

问题是,为什么警报不起作用?

修改 即使在url.php中我放了一个内联的javascript代码,按钮仍然不起作用


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

2 个答案:

答案 0 :(得分:2)

我认为您所问的是为什么当您单击由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是您要添加的功能,即fooeventName在这种情况下将是“点击”,elem是您想要的元素添加监听器。

答案 1 :(得分:0)

在FF3上尝试了相同的代码,它似乎工作得很好。你确定某处有拼写错误吗?尝试使用萤火虫获取线索。