Safari扩展使用onclick事件将HTML代码插入到网页中

时间:2016-09-01 19:08:41

标签: javascript html safari safari-extension

我正在创建自己的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;

我收到相同的错误消息。

我做错了什么?

0 个答案:

没有答案