如何在後臺頁面的選項頁面中調用函數?Chrome擴展程序:是否可以在背景頁面的選項頁面中調用功能?
例如,在選項頁面,您可以撥打:
chrome.extension.getBackgroundPage().updateIcon("someDifferentIcon.png");
從而從選項頁的背景頁面通信。你如何與後臺頁面的選項頁面進行通信?
一個可能的困難是選項頁面並不總是打開(不像背景),所以這可以解釋爲什麼它不是內置的(如上圖)。我的問題是,有可能做到嗎?
如何在後臺頁面的選項頁面中調用函數?Chrome擴展程序:是否可以在背景頁面的選項頁面中調用功能?
例如,在選項頁面,您可以撥打:
chrome.extension.getBackgroundPage().updateIcon("someDifferentIcon.png");
從而從選項頁的背景頁面通信。你如何與後臺頁面的選項頁面進行通信?
一個可能的困難是選項頁面並不總是打開(不像背景),所以這可以解釋爲什麼它不是內置的(如上圖)。我的問題是,有可能做到嗎?
一個簡單的方法來實現你的想法是使用「chrome.extension.sendRequest」API。例如:
options.js:
chrome.extension.sendRequest({id:"updateIcon", filename:"foo.png"});
background.js:
chrome.extension.onRequest.addListener(funciton(request) {
if (request && (request.id == "updateIcon"))
updateIcon(chrome.extension.geURL(request.filename));
});
如果選項頁面已經打開,您可以使用chrome.extension.getViews({type:"tab"})來獲取其窗口對象,然後調用它的函數(您需要遍歷返回的視圖並選擇URL爲您的選項頁面的URL)。如果尚未打開,則可以使用tabs API打開指向它的選項卡,然後使用chrome.extension.getViews
。
你是什麼意思?一個例子總是有用的。 – 2011-12-24 07:11:20
謝謝,參見上文。 – Shazam 2011-12-24 22:45:01