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

相關問題