Chrome扩展程序,如何在网页上创建叠加层?

时间:2014-02-08 14:02:34

标签: javascript html google-chrome

我正在尝试使用Chrome扩展程序将div插入网页。这是我在background.js中的代码:

function CreateDiv(){
    console.log("Created");
    var div = document.createElement("div");
    div.style.width = "100px";
    div.style.height = "100px";
    div.innerHTML = "Hello";
    document.body.appendChild(div);
}

chrome.contextMenus.create({"title": "Menu", "onclick": CreateDiv});
console.log("Loaded");

经过大约一个小时的实验,我发布它在background.html页面上创建一个div,当我想要它在我正在查看的页面上创建div时。有没有人有办法如何做到这一点?我已经看到它完成了扩展,例如'Ad Block',我看了代码,但我还是迷路了......有没有人对我如何做到这一点有任何建议?

1 个答案:

答案 0 :(得分:6)

更改活动标签的HTML需要做的是将信息发送到content.js并在那里创建。要从background.js发送信息,您可以像这样使用chrome.tabs.sendMessage

chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
        chrome.tabs.sendMessage(tabs[0].id, {createDiv: {width: "100px", height: "100px", innerHTML: "Hello"}}, function(response) {
            console.log(response.confirmation);
        });
    });

要在content.js中获取该信息,请执行以下操作

chrome.runtime.onMessage.addListener(
    function(request, sender, sendResponse) {
        if (request.requested == "createDiv"){
            //Code to create the div
            sendResponse({confirmation: "Successfully created div"});
        }
    });

请记住在清单文件中列出您的内容脚本。