(我将background.js称为 ba.js ,将content_script.js称为 cs.js )
情景:
问题:
cs.js 中正在接收空对象({}
)。请参阅 ba.js 的日志:
但是请看 cs.js 的日志:
问题:
问题是什么以及如何将 ba.js 中的DOM元素发送到 cs.js ?
ba.js :
(function(){
chrome.contextMenus.create({
type: "normal",
id: "x",
title: "Click me!",
});
chrome.contextMenus.onClicked.addListener(function(info, tab){
var id = info.menuItemId,
url = info.pageUrl,
elm = document.createElement("div");
elm.classList.add("test");
elm.appendChild(document.createElement("span"));
console.log("Element", elm);
if(id === "x"){
msg = {
task: "doWork",
elm: elm
};
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
console.log(msg);
chrome.tabs.sendMessage(tabs[0].id, msg);
});
}
});
})();
cs.js :
(function(){
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if(request.task === "doWork")
console.log(request.elm);
});
})();
Zip file of files to install and check manually
我已经包含了所有相关信息。如果您觉得缺少某些东西,请告诉我。请包括经过深入研究的答案。谢谢!