0

我已經發送了來自我的內容腳本的請求,併成功從我的背景頁面收到了響應。現在我想在我的內容腳本中設置一個變量 - 基於響應。這是我遇到麻煩的地方。應該很簡單....我想我必須得到錯誤的語法。下面是在我的內容腳本:根據傳遞自BG頁面的消息在內容腳本中設置變量 - Chrome擴展

chrome.extension.sendRequest({greeting: "hello"}, function(response) { 
    console.log(response.farewell); 
if (response.farewell == "goodbye") { 
     wasPolite = "yes"; 
} 
else if (response.farewell == "goaway") { 
     wasPolite = "no"; 
    } 
else { 
wasPolite = "maybe"; 
} 
}); 
alert(wasPolite); 

控制檯顯示goaway作爲響應,但wasPoite仍然是不確定的。

+0

您在哪裏測試wasPolite的值?我想這是一個範圍問題。你能否發佈更多的代碼來顯示wasPolite變量的範圍以及它的定義和後續測試的位置? –

+0

它是在上面的代碼中定義的,作爲注入腳本的頁面上的全局變量,就這些了。它在上面的代碼後面的下一行進行了測試。我試圖提醒(wasPolite)',但沒有骰子...... –

+2

如果你定義var wasPolite ='';在chrome.extension之前....並且它仍然沒有提醒正確的值,那麼我會問的是chrome.extension.sendRequest()函數是異步的嗎?如果是這樣,你可能會在請求有回調之前提醒wasPolite。 @Ruup可能正在跟蹤,表明在sendRequest實際完成後,wasPolite將只具有它的值,從而觸發回調。 –

回答

2

如果定義:

var wasPolite = ''; 

之前:

chrome.extension.... 

,它仍然沒有提醒正確的值,那麼我會問是chrome.extension.sendRequest()功能異步?如果是這樣,你可能會在請求有回調之前提醒wasPolite。 @Ruup可能表明wasPolite只有在sendRequest實際完成後纔會具有它的值,從而觸發回調

相關問題