javascript - Chrome 扩展程序 : How to add a button to a page on a web site and add a click handler to it?

标签 javascript google-chrome-extension onclick

我正在尝试使用 Chrome 扩展程序动态地将按钮添加到第三方网站上的页面,并向该按钮添加点击处理程序。我已阅读onClick within Chrome Extension not working ,在单独的 js 文件中添加了处理程序。

问题是 Chrome 尝试在网络服务器中而不是扩展程序中查找 js 文件。所以,404 发生了。

假设网页是“http://www.somecompany.com/somepage.html ”。我的扩展代码如下。

    var aButton = document.createElement('button');
    aButton.id = "aButton";
    thatDiv.appendChild(aButton);

    var aScript = document.createElement("script");
    aScript.src="aButtonHandler.js";
    thatDiv.appendChild(aScript);   

Chrome尝试加载“http://www.somecompany.com/aButtonHandler.js ”,当然真实的网站没有该脚本,所以会发生404。如何向网站添加按钮并在单击按钮时执行 alert("hello");

<小时/>

已添加

我将 aButtonHandler.js 中的代码添加到内容脚本本身的末尾,但什么也没发生。怎么了?

内容脚本.js

addButton();

function addButton()
{
    //adds a button by the code above.
}

document.addEventListener('DOMContentLoaded', function() {
    var theButton = document.getElementById('aButton');
    theButton.addEventListener('click', function() {
        alert('damn');
    });
});
<小时/>

已添加

这有效。

内容脚本.js

addButton();

function addButton()
{
    //adds a button by the code above.
    aButton.addEventListener('click', function() {
        alert('damn');
    });
}

最佳答案

使用setInterval检查功能<button>元素存在,如果不存在则创建并附加 <button>元素。

var myVar = setInterval(function() { 
    if(document.getElementById('aButton')) {
        //  clearInterval(myVar);
        return false;
    } else {
        if(document.getElementsByClassName("assignedToUsers")[0]) {
            var button = document.createElement("button");
            button.innerHTML = "Test";
            button.id = "aButton";
            button.type = "button";
            document.getElementsByClassName("assignedToUsers")[0].appendChild(button);

            var theButton = document.getElementById('aButton');
            theButton.addEventListener('click', function() {
                console.log(document.getElementsByClassName("ms-TextField-field")[0].value);
            });
        }
    }
}, 500);

关于javascript - Chrome 扩展程序 : How to add a button to a page on a web site and add a click handler to it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45886273/

相关文章:

javascript - 使用 jscolor 更改文本颜色

javascript - 如何与 Chrome 打包 App 中的沙盒窗口通信?

vb.net - 更改光标 VB.NET

javascript - 需要访问 JSON.stringify 对象中的数据

javascript - 对象数组中前 2 个最大值

javascript - Mongoose $in 运算符仅更新一个文档

javascript - 类型错误 : Converting circular structure to JSON in nodejs

google-chrome - 扩展如何获取chrome pdf查看器中选择的文本?

javascript - 如何检查 HTML 对象在 jQuery 中是否为空?

javascript提示不显示