我一直在尝试从我的内容脚本传达到背景页面(XHR),但是,我甚至没有建立沟通。
以下是 content_script.js
的摘录$('.genericStreamStory').each(function(){
var link = $(this).find('.uiStreamSource a').attr('href');
$(this).find('.uiStreamFooter').append("<span class='a1' style='color:red !important;'> · Sample</span>");
document.querySelector('.a1').onclick=function(){
//alert('span clicked');
chrome.extension.sendMessage({method: "getHTML", data: 'hello'});
};//end of anonymous function
});
back.js
chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
if (request.method === "getHTML") {
console.log('check.. '+request.data);
}
});
最后, manifest.json
{
"name": "App1",
"version": "0.1",
"description": "Yay, I'm so useless.",
"content_scripts": [
{
"matches": ["https://*.facebook.com/*"],
"js": [
"/js/external/jquery.js",
"/js/content_script.js"
]
}
],
"background": {
"scripts": ["/js/back.js"]
},
"manifest_version": 2
}
所以这个扩展基本上试图在每个facebook帖子后创建一个'Span'。 当我单击Span元素时,我会在警告框中收到消息(我现在已经评论过了)。理想情况下,此操作应与我的back.js页面进行通信。
在back.js中,我将内容脚本发送的消息记录到控制台。
但是,我在控制台屏幕上一无所获!
我尝试了以下内容:
我的代码中是否有任何错误?我哪里弄错了?