如何通过链接调用篡改功能?
这是我尝试过的。使用tampermonkey,我可以按如下方式插入一个链接:
var aNode = document.createElement('a');
var aText = document.createTextNode('will it run');
aNode.appendChild(aText);
aNode.href = 'javascript:runTest();';
document.body.insertBefore(aNode, document.body.firstChild);
function runTest() {
alert('it ran!');
};
调用链接时,应调用函数runTest()。事实并非如此。而是出现以下错误消息:
未捕获的ReferenceError:未定义runTest
答案 0 :(得分:5)
不要那样设置javascript处理程序。使用addEventListener()
,如下所示:
var aNode = document.createElement ('a');
var aText = document.createTextNode ('will it run');
aNode.href = '#';
aNode.appendChild (aText);
document.body.insertBefore (aNode, document.body.firstChild);
aNode.addEventListener ("click", runTest, false);
function runTest (zEvent) {
zEvent.preventDefault ();
zEvent.stopPropagation ();
alert('it ran!');
};