1

我是Google Chrome扩展开发人员的新手,我正在运行一个导致内容脚本未能执行的问题。以下是该问题的详细说明。Chrome扩展程序 - 事件页面/消息传递不起作用

我工作的延伸阅读来自网站的一些内容DOM每说example.com我有以下文件和它的各部分代码。

清单

{ 
    "manifest_version" : 2, 

    "name" : "My First Chrome App", 
    "description" : "My First Chrome App", 
    "version": "1.0", 

    "browser_action" : { 
     "default_title" : "Hello" 
    }, 

    "permissions" : ["tabs"], 

    "background" : { 
     "scripts" : ["background.js"], 
     "persistence" : false 
    }, 

    "content_scripts":[ 
    { 
     "matches": [ 
     "http://example.com/HomePage.aspx" 
     ], 
     "js": ["jquery_224.js", "content_script.js"] 
    }] 
} 

background.js

我的目的是创建一个标签和冲浪到在下面的脚本中提到的页面。而且,它必须将消息发送到content_script.js

chrome.browserAction.onClicked.addListener(function(){ 
    chrome.tabs.create({ url: "http://example.com/HomePage.aspx" }, function(tab){ 
    chrome.runtime.sendMessage({authKey : "parse-dom"}); 
    setTimeout(function(){ 
     chrome.tabs.remove(tab.id); 
    }, 2000); 
    }); 
});. 

content_script.js

在这里,我想读我是从我的background.js

chrome.runtime.onMessage.addListener(function(request,sender,response){ 
    alert(request.authKey); 
}); 
发送它的 authKey

不幸的是,我没有收到警报,也没有看到任何脚本错误。我已经通过了Chrome Messaging API和跟着相同

我在哪里出错了?

回答

0

尝试用

"content_scripts":[ 
{ 
    "run_at": "document_start", 

更多的相关信息:https://developer.chrome.com/extensions/content_scripts

或尝试把超时你的背景的sendMessage

编辑:我也注意到有关的manifest.json你有一个HTTPS匹配,而您正在创建一个选项卡HTTP地址

+0

没有工作。暂时,我已经删除了'setTimeout'实现。顺便说一句,纠正了我的问题** HTTP **和** HTTPS ** – Sriram

+1

**怎么样** chrome.tabs.sendMessage(tab.id,{authKey:“parse-dom”})**甚至把它放入一个超时** setTimeout(()=> {chrome.tabs.sendMessage(tab.id,{authKey:“parse-dom”})},1000); ** – Andrea

+0

用这个'chrome.tabs.sendMessage(tab .id,{authKey:“parse-dom”});'。没有工作。在这种情况下,真的不需要使用'setTimeout'功能。 – Sriram

相关问题