我正在创建自己的Safari扩展程序,在我的DOM中插入2个按钮,以改善某些网站的用户体验。
我使用Safari Extension Builder创建了一个扩展。我创建了一个名为end.js
的脚本,它在每个完成的HTTP请求之后加载。在这个脚本中,如果存在特定元素,我会检查我的DOM,并在此元素旁边插入我的按钮。
按钮的创建方式如下:
var headerElements = window.document.getElementsByClassName("headers");
if (headerElements.length > 0) {
var header = headerElements[0];
if (header.getElementsByClassName("button1").length == 0) {
var div = window.document.createElement("div");
div.setAttribute("class", "buttons-div");
var button1 = window.document.createElement("button");
button1.setAttribute("class", "button1");
button1.setAttribute("style", "width: 150px;");
button1.innerHTML = "allen folgen";
button1.onclick = function() {
alert("click button1");
};
div.appendChild(button1);
header.appendChild(div);
}
}
只要按下按钮,控制台上就会显示错误信息:
onclick - end.js(Zeile 27)TypeError:alert不是函数。 (在'alert(“按下按钮”)','alert'未定义)
为什么我可以访问onclick
事件“之外”的所有函数,但是一旦输入函数,我就无法访问这些函数中的任何一个?即使我创建自己的功能
function click() {
alert("test");
}
并将按钮的onclick设置为:
button1.onclick = click;
我收到相同的错误消息。
我做错了什么?