2012-03-06 84 views
0

我試圖在我的工具欄上添加一個Chrome擴展,當點擊它時,會將當前頁面轉換爲該頁面的Google緩存版本。如果我已經在一個頁面的Google緩存中,我想打開一個小小的彈出窗口,說:「你已經在這個頁面的Google緩存版本!」如何僅在單一情況下打開鍍鉻擴展彈出窗口?

這裏就是我的了:

manifest.json的:

{ 
    "name": "gCache", 
    "version": "1.1.5", 
    "description": "View the Google Cache of a page", 
    "background_page": "redirect.html", 

    "browser_action": { 
    "default_icon": "icon.png", 
    "default_text": "Google Cache version of this page" 
    }, 

    "permissions": [ 
    "tabs" 
    ] 
} 

將redirect.html:

<script> 

chrome.browserAction.onClicked.addListener(function(tab) { 
    if (tab.url.substring(0, 38) == "http://webcache.googleusercontent.com/") 
     //Popup saying user is already on a webcache page 
    else if(tab.url.substring(0, 5) == "http:") 
     chrome.tabs.update(tab.id, { url: 'http://webcache.googleusercontent.com/search?q=cache:' + tab.url.substr(7) }); 
    else if(tab.url.substring(0,6) == "https:") 
     chrome.tabs.update(tab.id, { url: 'http://webcache.googleusercontent.com/search?q=cache:' + tab.url.substr(8) }); 

}); 

</script> 

謝謝您的閱讀和幫助!

+0

您可以使用內容腳本來顯示JS'alert()' - 我認爲使用桌面通知是用戶更好的用戶體驗。 – 2012-03-07 03:55:33

+0

@JasonHall我不會使用JS alert(),因爲它很煩人。我想使用Chrome擴展的彈出功能。但是,它開始看起來像我想要做的功能不存在 – Dbz 2012-03-07 03:58:46

+0

它確實存在,我只是不確定有時候只顯示彈出窗口是一種好方法。你可以嘗試讓彈出窗口總是顯示,然後立即關閉,它可以做得足夠快,它可以工作,但我有點懷疑它。或者,您可以將您的擴展程序設爲頁面操作而不是瀏覽器操作,因此圖標將不會顯示在這些頁面上。 – 2012-03-07 04:07:24

回答

0

您不能混合和匹配browserActiononClick事件與打開彈出。您可能需要使用Desktop Notifications API

+0

我不認爲桌面通知API在這裏很有用。是否有一個原因,我不能有「browser_action」:{「default_popup」:}也啓用? – Dbz 2012-03-07 01:24:42

+0

你可以在五秒鐘後自動隱藏通知或類似的東西。 Google這樣設計的:'點擊瀏覽器動作圖標時觸發。如果瀏覽器操作彈出窗口,此事件不會觸發。 https://code.google.com/chrome/extensions/browserAction.html#event-onClicked – abraham 2012-03-07 05:54:47

相關問題