2011-12-27 113 views
2

我想在彈出窗口中設置一個變量,標記爲i,然後將其發送到後臺頁面。我相信我可以把這個變量作爲「請求」,但我可能是錯的。當我嘗試運行擴展時,我得到:彈出窗口和背景Chrome擴展之間的工作

Uncaught TypeError: Cannot call method 'sendRequest' of undefined

我缺少什麼?

這裏是我的popup.html文件:

var i = 0; 
function start(){ 
    alert("working"); 
    chrome.tabs.sendRequest(i); 
} 

function add(){ 
    i++; 
    document.getElementById('box').value=i; 
} 

function sub(){ 
    i--; 
    document.getElementById('box').value=i; 
} 
+0

看看[這個問題](http://stackoverflow.com/questions/4865850/google-chrome-extension-develompent)幫助你解決你的情況。 – 2011-12-27 08:45:11

回答

4

你應該叫chrome.extension.getBackgroundPage功能去後臺頁面的窗口對象的引用。下面是一個例子,其中setIValue函數在後臺頁面中定義。

var i = 0, bgPage = chrome.extension.getBackgroundPage(); 
function start(){ 
    alert("working"); 
    bgPage.setIValue(i);   
} 
+0

感謝您的回覆,現在如果可以的話,我還有一個問題。對於.setIValue(i);我如何指定我想改變的bgPage中的值? – easilyBaffled 2011-12-27 17:41:14

+0

你的意思是「什麼變量」(而不是什麼值)?如果你想設置一個在後臺頁面中定義的變量,只需編寫'bgPage.myVariable = i' – 2011-12-27 18:02:27

+0

是否有我需要添加的任何權限?因爲我得到一個「不能調用方法」getBackgroundPage「未定義」和後來「當我嘗試bgPage.ctr = i時不能設置未定義的屬性'ctr'; – easilyBaffled 2011-12-28 04:38:20

相關問題