2016-08-15 41 views
1

我在尝试构建Chrome扩展,但无法从弹出窗口向内容脚本发送消息。请告诉我问题在哪里。Chrome中的弹出窗口和内容脚本之间的通信

弹出脚本代码:

  $(document).ready(function(){ 
      $('#button').click(function(){ 
       chrome.tabs.query({active: true, currentWindow: true},function(tabs) { 
        chrome.tabs.sendMessage(tabs[0].id, {message: "hello"}); 
     }); 
    }); 
}); 

内容脚本代码:

chrome.extension.onMessage.addListener(
function(request, sender) { 
    alert("Contentscript has received a message from from background script: '" + request.message + "'"); 
    }); 

这是manifest.json的:

{ 
    "manifest_version" : 2, 
    "name" : "First My Chrome Extension", 
    "version" : "0.0.1", 
    "description" : "The first web-app using chrome extension technology", 
    "icons" : { 
    "16" : "images/icon16px.png", 
    "48" : "images/icon48px.png", 
    "128" : "images/icon128px.png" 
    }, 


"background": { 
    "scripts": ["scripts/background.js"] 

    }, 



    "browser_action" :{ 
    "default_icon":{ 
     "48" : "images/icon48px.png" 
    }, 
    "default_title" : "Nghoangvutn", 
    "default_popup" : "popup.html" 
    }, 
    "content_scripts":[ 
    { 
    "matches":[ 
     "<all_urls>" 
     ], 
    "js" : [ 
     "scripts/jquery.js", 
     "scripts/content.js" 
     ] 

    } 
    ], 

    "permissions" : [ 
    "tabs", 
    "storage" 
    ] 

} 
+0

弹出窗口和网页控制台中的任何错误信息? –

+0

没有错误信息。它只是不工作。也许消息传递失败。我不知道问题在哪里 –

+0

检查这些链接:http://stackoverflow.com/questions/13646389/send-message-from-popup-to-content-script和http://stackoverflow.com/questions/6108906/chrome-extension-message-passing-from-popup-content-script – abielita

回答

0

内容脚本代码应当更新使用以下方法chrome.runtime.onMessage.addListener。请注意从chrome.extensionchrome.runtime的更改。

chrome.runtime.onMessage.addListener(
function(request, sender) { 
    alert("Contentscript has received a message from from background script: '" + request.message + "'"); 
}); 
+0

我遵循你的帮助,但没有任何变化,内容脚本不起作用。 –

+0

你是否正确加载内容脚本? – 10100111001

+0

它应该使用清单文件动态地或静态地添加到页面。 – 10100111001

相关问题