我有一个带有一些链接的网页(没有为这些链接分配ID)。我想为这些链接添加onclick功能。通过查看该网页的源代码,我意识到我可以使用以下代码添加onclick到链接:
doc = doc.replace(/&sa=N\"/g, "&sa=N\" onClick=\"alertsomething();return false;\"");
function alertsomething(){
alert('hello');
}
但是当加载网页并点击这些链接时,“alertsomthing”功能不起作用。它生成以下页面:
找不到对象!
在此服务器上找不到请求的URL。引用页面上的链接似乎是错误的或过时的。请通知该页面的作者有关错误的信息。
如果您认为这是服务器错误,请与网站管理员联系。
错误404 localhost 12/05/2011 上午10:00:29 Apache / 2.2.17(Win32) mod_ssl / 2.2.17 OpenSSL / 0.9.8o PHP / 5.3.4 mod_perl / 2.0.4 Perl / v5.10.1
我检查了以下代码并且它正常运行
doc = doc.replace(/&sa=N\"/g, "&sa=N\" onClick=\"alert("hello");return false;\"");
我正在使用IE7。
答案 0 :(得分:1)
除非你确切知道自己在做什么,否则不要乱用body.innerHTML。它将删除作为DOM属性添加的侦听器,使用正则表达式解析HTML肯定会在任何非平凡的页面中失败。
页面中的每个链接都有一个document.links
集合,对其进行迭代并将侦听器添加到每个链接。或者向主体添加单击侦听器并等待点击 - 如果它们来自链接,请执行您的操作。