Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome扩展名:sendMessage无法工作2_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript Chrome扩展名:sendMessage无法工作2

Javascript Chrome扩展名:sendMessage无法工作2,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,所以我已经问了这个问题,但是给出的回答不起作用。我已经更新了这篇文章,上面有一些以前的建议。。。这里是这个问题的链接,以防任何想尝试这个问题的人也想看看以前说过什么 我已经阅读过谷歌关于“消息传递”的文档好几次了,可能已经看过了10多个其他问题,这些问题都是同样的问题,我已经尝试过他们的大多数解决方案的一些变体,以及我下面介绍的内容。。。这是黑魔法,对吗?不管怎样,都是这样 manifest.json文件: { "manifest_version" : 2, "name" : "

所以我已经问了这个问题,但是给出的回答不起作用。我已经更新了这篇文章,上面有一些以前的建议。。。这里是这个问题的链接,以防任何想尝试这个问题的人也想看看以前说过什么

我已经阅读过谷歌关于“消息传递”的文档好几次了,可能已经看过了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"]
        }
    ]    
}
message-Test.js文件:

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

alertTest没有关闭…

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

对我有效。使用console.log函数对其进行调试,找出它卡在哪一行。也可以使用此日志替换警报。然后你可以检查控制台。注意:弹出窗口有一个与内容控制台F12不同的控制台右键单击>检查元素。有趣的是,它可以工作。为什么只有我点击分机按钮它才会响?当我加载网页时,它不应该熄灭吗?当用户单击html按钮时,我如何使它熄灭?Popup.js仅在显示弹出窗口时(即单击按钮时)才会触发。如果我不能使用html内联javascript,并且我不希望在单击时传递消息,我可以对扩展执行类似的操作吗分机按钮?我也不确定如何替换扩展的window.onload脚本,这是内联问题,对吗?LOL您是否希望用户单击popup.html中的按钮来触发该消息?
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){});
});
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    if (message.greeting == "Can you hear me?"){
        alert("Test");
    }
    else{
        sendResponse({});
    }
});