例如:
在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')\" />";
答案 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
是您要添加的功能,即foo
,eventName
在这种情况下将是“点击”,elem
是您想要的元素添加监听器。
答案 1 :(得分:0)
在FF3上尝试了相同的代码,它似乎工作得很好。你确定某处有拼写错误吗?尝试使用萤火虫获取线索。