2011-12-18 34 views
2

以下是我的代碼,但它拒絕在Chrome開發人員儀表板上進行complile。我在服務器上有一個名爲my-page.php的頁面在Chrome擴展安裝後重定向到page.html

{ 
    "content_scripts": [ { 
     "all_frames": true, 
     "js": [ "go.js" ], 
     "matches": [ "\u003Call_urls\u003E" ] 
    } ], 
    "description": "blahhh", 
    "icons": { 
     "128": "icon128.png", 
     "16": "icon16.png", 
     "48": "icon48.png" 
    }, 
    "key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCdw+eIzaqEWfjrzJZ1TFO0/QVxWNdQEMvf4V6xdpZpTfIW3lOPVIJIvA6D4wyv6H+C8KAgbh58JEkqzgEC/1a+r4jGXhbvQk7Ybjj2CMVJBe6jF5Fz0ckPyTlPreFkT13PGwi72lljRZz7680VwY9jjPa7rsjV4hjTt2RRfi3UfwIDAQAB", 
    "name": "my plugin", 
     "background_page": "mypage.php", 
     "permissions": [ "tabs", "*://*/*" ], 
    "version": "1.3.0" 
} 

回答

4

您的背景頁將與您的其餘文件打包在一起。您的服務器上不能有背景文件。它會拋出一個錯誤,因爲您的擴展名文件夾中可能沒有名爲mypage.php的文件。 Learn about background pages

no events,讓在已安裝了分機知道,但一個簡單的方法來做到這一點,將是你的background文件中添加如下代碼:

if(!localStorage.first){ 
    chrome.tabs.create({ 
     url : "http://whatever.com/welcome.html" 
    }); 
    localStorage.first = "true"; 
} 

這工作,因爲後臺文件的代碼將在安裝後立即執行,並且如果localStorage.first已不存在,它將打開該選項卡並將localStorage.first設置爲true,以便在下次執行background文件的代碼時它不會打開該選項卡即瀏覽器重新打開時。

請注意,如果用戶也清除所有localStorage,則該選項卡將打開。不過,這是我能想到的唯一方法。

+0

然後我如何重定向用戶的分機安裝後?或者打開一個新的瀏覽器標籤到我選擇的網址? – 2011-12-18 16:49:37

+0

@RuthBarbour我編輯了我的答案。 – 2011-12-18 17:03:52

+0

我是否會將該代碼放入javascript標記的background.html中或由其本身? – 2011-12-18 18:06:58

相關問題