内容脚本与后台页面之间的通信,Manifest v2(Chrome扩展)

时间:2013-03-19 19:48:52

标签: google-chrome google-chrome-extension

我一直在尝试从我的内容脚本传达到背景页面(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中,我将内容脚本发送的消息记录到控制台。

但是,我在控制台屏幕上一无所获!

我尝试了以下内容:

  1. 我取代了onMessage&amp; sendMessage with onRequest&amp;发送请求。得到PORT Error
  2. 还尝试从替换内联脚本的.js文件加载外部脚本。 - 空白控制台!
  3. 我的代码中是否有任何错误?我哪里弄错了?

0 个答案:

没有答案