9

我試圖將數據從彈出窗口傳遞給內容腳本,但我沒有任何運氣。儘管我用它的方式(內容 - >彈出)反過來工作。我想要做的就是將文本輸入位於彈出窗口中的輸入內容,然後單擊一個提交按鈕,將該文本插入到網頁的dom中。Chrome擴展程序 - 消息從彈出窗口傳遞到內容腳本

這是我有:

popup.html

chrome.extension.sendRequest({action:'start'}, function(response) { 
    console.log('Start action sent'); 
}); 

contentscript.js

function startExtension() { console.log('Starting Extension'); } 

function stopExtension() { console.log('Stopping Extension'); } 

function onRequest(request, sender, sendResponse) { 
    if (request.action == 'start') 
     startExtension() 
    else if (request.action == 'stop') 
     stopExtension() 
    sendResponse({}); 
} 

chrome.extension.onRequest.addListener(onRequest); 

回答

10

你需要指定發送給哪個選項卡。就像這樣:

chrome.tabs.sendMessage(tab.id, {action:'start'}, function(response) { 
    console.log('Start action sent'); 
}); 

如果你不知道哪個是標籤,你可以發送到所有(可能是一個壞主意),或使標籤先發送信息。

欲瞭解更多信息,請查閱此頁:Message Passing

+7

只是想指出sendRequest自Chrome 20以來已被棄用,並已被sendMessage取代,這是我遇到問題的原因。更多信息在這個答案http://stackoverflow.com/a/11587062/381010 – Joris 2013-02-18 12:20:15

+0

更新我的迴應。 – 2015-09-10 13:17:14

相關問題