2016-08-19 43 views
0

我正在開發一個將腳本注入Facebook以更改外觀的Chrome擴展。該腳本僅在主頁上運行。問題是,如果我從主頁上的Facebook上訪問不同的頁面,腳本將繼續運行。另外,如果我從Facebook上的任何其他頁面訪問主頁,腳本不會運行。我不確定發生了什麼事。我認爲這可能與我的manifest.json有關,但我不知道。任何幫助都會很棒。注入的腳本繼續到下一頁

我的manifest.json是

{ 
    "manifest_version": 2, 

    "name": "Getting started example", 
    "description": "This extension shows a Google Image search result for the current page", 
    "version": "1.0", 

    "browser_action": { 
    "default_icon": "icon.png", 
    "default_popup": "popup/popup.html", 
    "default_title": "Bamboozle" 
    }, 
    "permissions": [ 
    "activeTab", 
    "https://ajax.googleapis.com/" 
    ], 
    "content_scripts": [ 
    { 
     "matches": ["https://www.facebook.com/","https://www.facebook.com/?*"], 
     "js": ["facebook/facebook.js"], 
     "css" : ["facebook/facebook.css"] 
    } 
    ] 
} 
+0

[Chrome的Chrome擴展程序僅在刷新時加載]的可能副本(http://stackoverflow.com/questions/28840467/chrome-extension-for-facebook-loads-just-on-refresh) –

回答

0

這是一個現代化的現場爲您。它動態更新其部件並僞裝URL更改。

要麼住在一起或添加"tabs"許可(它將使網絡存儲器請求允許訪問安裝擴展的所有網站),並跟蹤chrome.tabs.onUpdated監聽器地址變化,然後更改工具欄上的圖標,chrome.browserAction.setIcon提供它是你的擴展包中的一個正常或灰色圖標。

另一種可能的解決方案是declarativeContent API:給它一個只存在於你想要的頁面上的元素的css選擇器,並使用chrome.declarativeContent.ShowPageAction()作爲文檔中顯示的操作。如果您從現在使用的browserAction切換到pageAction,這將起作用。或嘗試chrome.declarativeContent.SetIcon() - 它會有點凌亂:pass arguments to chrome.declarativeContent.SetIcon