我正在写一个小的用户脚本,在我经常使用的phpBB论坛的用户个人资料图像旁边包含一个链接。单击该链接时,我收到如下错误:
Uncaught ReferenceError: doit is not defined
(anonymous function) viewtopic.php:542
onclick viewtopic.php:543用户脚本的一部分:
(function(){
var script = document.createElement('script');
script.textContent = '(' + twk.toString() + ')();';
document.body.appendChild(script);
function twk() {
pd = document.getElementsByClassName('postdetails');
for (i=0 ; i<(pd.length); i++) {
ele = document.createElement("a");
ele.innerHTML ='<a href=\'#\' onclick=\'doit();\'>Quick reply</a>';
pd[i].appendChild(ele);
}
function doit() {
selec = document.getSelection().anchorNode.textContent;
document.getElementsByClassName("row2").item('message').innerHTML = selec;
}
}
})();有人能指出我哪里做错了吗?
发布于 2011-04-19 01:42:01
首先,你创建的元素是完全错误的。应该是这样的:
var link = document.createElement('a');
link.setAttribute('href', '#');
link.innerHTML = 'New text';并向其添加事件:
link.onclick = doit
最后,将其添加到页面,就像您正在做的那样:
pd[i].appendChild(ele);
你可能想要考虑使用像jQuery或Mootools这样的框架,它会让你的生活变得更容易。有时,浏览器做这样的事情会有冲突。我个人喜欢Mootools,但jQuery更容易上手,特别是对于小项目。
编辑:
我在示例中添加了innerHTML。我只会使用一个框架,而不是用很难的方式来做这件事。
发布于 2011-04-19 01:40:35
从外部anon函数中解开所有内容,它应该可以工作:
https://stackoverflow.com/questions/5706647
复制相似问题