Chrome扩展程序:sendMessage不起作用#2

时间:2014-04-19 17:59:50

标签: javascript google-chrome google-chrome-extension

所以我已经问过这个问题了,但是给出的回复没有用(我已经用之前的一些建议更新了这篇文章)...如果有人提供这个问题的链接我想抓住这个也想看看之前说的是什么。

Chrome extension: sendMessage doesn't work

我已经阅读了Google关于“消息传递”的文档几次,并且可能已经查看了10个以上同样问题的其他问题,并且已经尝试了大部分“解决方案”和其中的一些变体我在下面......这是黑魔法吧?无论哪种方式,它都在这里。

manifest.json文件:

{
    "manifest_version" : 2,
    "name" : "Message Test",
    "version" : "1.0",

    "browser_action": { 
        "default_popup": "popup.html"
    },

    "content_scripts": [
        {
        "matches" : ["<all_urls>"],
        "js": ["message-test.js"]
        }
    ]    
}

popup.html文件:

<html>
<body>
<script type="text/javascript" src="popup.js"></script>
</body>
</html>

popup.js文件:

chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
    var tab = tabs[0];  // do not forget to declare "tab" variable
    chrome.tabs.sendMessage(tab.id, {
        greeting: "Can you hear me?"
    }, function(response){});
});

message-Test.js文件:

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    if (message.greeting == "Can you hear me?"){
        alert("Test");
    }
    else{
        sendResponse({});
    }
});

警报(“测试”)不会消失......

1 个答案:

答案 0 :(得分:0)

您的代码非常适合我。您的内容脚本仅在页面加载时被注入,并且该消息仅被传递到第一个选项卡打开 - 确认在加载扩展后确保刷新第一个选项卡,然后单击弹出按钮。