2012-02-13 50 views
1

我是擴展開發新手,也許有人有一個小例子準備好我的問題。我想計劃一個更復雜的代碼(這將執行鉻API函數),但解決這個任務應該幫助我開始:谷歌瀏覽器擴展,使特定網站觸發擴展代碼中的功能

我想創建一個擴展觸發一個彈出或alert()(只是anyything)的基礎上一個網站的JavaScript調用。

因此,例如我的網站有一個按鈕,當點擊按鈕時,帶有幾個參數的JavaScript被執行。 我的擴展選擇了這些參數,並根據參數執行API(對於我的示例中的任何彈出窗口)。 在我的基本示例中,我想用JavaScript提供的文本觸發某種彈出窗口/通知。 也只有我的網站域名應該被允許觸發,其他任何應該被拒絕。

我真的很感謝您的幫助。 這裏是我的website.com/example

<html> 
<body> 
<button onClick="extension_do_exec('Hellow world','abcabc')">Execute extension function</button> 
</body> 
</html> 

回答

2

你所描述的方法是有問題的,bacause的網頁頁面JavaScript和JavaScript的的我的「空」明顯

{ 
    "name": "Special API", 
    "version": "1.0", 
    "description": "API demo extension.", 
    "browser_action": 
    { 
    "default_icon": "gears.ico", 
    "popup": "show_credits.htm" 
    }, 
    "permissions": [ 
    "http://www.mywebsite.com/" 
    ] 
} 

下面的例子按鈕擴展彼此隔離(有一個概念isolated world)。因此,不可能將「由網站JavaScript提供的」值直接寫入擴展的JavaScript中。我建議另一種方法。您可以通過將它們作爲屬性分配給DOM對象來交換一些值。這些屬性可以從內容腳本訪問,並注入到網頁中。當然,內容腳本可以確定頁面的域並根據需要進行工作。至於彈出窗口,這些是擴展的內部頁面,您應該在它們和您的內容腳本之間實現某種messaging

+0

謝謝,我確實是這樣解決它的。 我使用一個contentscript,一個隱藏的div和一個customevent,就像它在文檔鏈接上描述的一樣,用於消息傳遞。 – John 2012-02-13 17:31:40