我正在尝试使用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',我看了代码,但我还是迷路了......有没有人对我如何做到这一点有任何建议?
答案 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"});
}
});
请记住在清单文件中列出您的内容脚本。