我试图将DOM作为一条消息从contentcript发送到backgroundjs,但它似乎没有发送任何东西。在我的扩展程序中,我在链接中添加了一个按钮,然后在点击时,它将获得该网站的预览。
我已经阅读过几十个似乎有同样问题的其他链接,并且我已经尝试了大部分解决方案,但它仍然无声地失败。
的manifest.json
{
"name": "PreviewMe",
"version": "0.0.1",
"manifest_version": 2,
"description": "Test",
"permissions": [
"<all_urls>"
],
"background": {
"scripts": ["js/background.js"],
"persistent": true
},
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": [
"js/contentscript.js"
]
}
]
}
contentscript.js
chrome.extension.sendMessage({}, function(response) {
var readyStateCheckInterval = setInterval(function() {
if (document.readyState === "complete") {
clearInterval(readyStateCheckInterval);
// do stuff to initialize
}
}, 10);
});
// send dom over to background.js
chrome.runtime.sendMessage({dom: document.body.innertHTML});
background.js
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
console.log('HELLO WORLD');
});
我把hello world console日志进行测试,但即使这样也没有出现。
感谢。
编辑:我认为我的代码默默地失败但事实证明它只是记录到一个单独的控制台。我不知道背景页面有一个单独的控制台。