有一個問題,同時通過使用腳本內容在谷歌瀏覽器擴展程序開發的消息 我的代碼結構如下:Chrome擴展程序開發:消息傳遞問題
popup.html:
var oList;
function getHTML()
{
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {action:"getHTML"}, function handler(response) {
oList = response.dom;
});
});
alert("oList = "+oList);
}
和我的內容腳本是這樣的:
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
if(request.action == "getHTML"){
sendResponse({dom: document.getElementsByTagName("HTML").length});
}
});
當我在我的popup.html把一個斷點「oList = response.dom;
」調試我的代碼,我從內容腳本中獲得了設置爲 的右側值。但在執行擴展時,popup.html中的「alert("oList = "+oList);
」代碼 似乎在它進入服務器之前先執行。因此,其值爲 未設置..有人可以告訴我,如果我錯了某處?
它的表現很奇怪。如果我做了一個「審查彈出」無斷點,它的工作。如果我只是清楚地執行,它只是不跑!我在響應中添加了console.logs(),看到它沒有執行。但是當我調試時,代碼正在進入..我能夠在控制檯中看到日誌,並且還能夠獲取警報。爲什麼這很開心? – sharath 2010-08-13 00:00:47