0
我的理解是沒有辦法直接頁面操作和教改嘗試腳本之間的溝通,所以我這樣做:PageAction,背景頁面,並ContentScript之間的通信一款Chrome擴展程序
在page_action.html:
chrome.extension.sendRequest(
{to:"background",key:"color",val:"red"},
function(response) {
console.log(response) ;
}
) ;
在background.js
chrome.extension.onRequest.addListener(
function(request,sender,sendResponse) {
if (request.to == "background") {
console.log("Request recieved to Background") ;
request.to = "content" ;
chrome.extension.sendRequest(request,function(response) {
sendResponse(response) ;
}) ;
}
}
) ;
我ñcontent.js
(function(){
// ...
// Do something initial
// ...
// Now start to listen
chrome.extension.onRequest.addListener(
function(request,sender,sendResponse) {
if (request.to == "content") {
// Do something with request.key and request.val
console.log("Request recieved to Content Script") ;
sendResponse({status:'from content'}) ;
}
}
) ;
}()) ;
頁面操作和背景之間的通訊作品完美,但背景和內容腳本之間沒有發生。我在這裏錯過了什麼?如何正確溝通對方?最重要的是,還有另一種讓頁面操作更直接的通信到內容腳本的方式嗎?
謝謝!奇蹟般有效!只是沒有「tabId」,只有「ID」:) – Digerkam 2013-02-28 05:07:00
@Digerkam這就是我從內存中輸入它。感謝您指出了這一點。 – BeardFist 2013-02-28 05:22:43
我的榮幸。我可以請你看看這個問題,如果你嘗試類似的東西:http://stackoverflow.com/questions/15102282/how-to-execute-scripts-on-background-page-of-a-chrome-擴展再次謝謝! – Digerkam 2013-02-28 05:31:13