2011-12-03 81 views
0

我正在嘗試爲自己製作實用程序Chrome擴展程序,以便將來自plus.google.com/XXXX的網址從plus.google.com本身之外的所有網站自動更改爲plus.google.com/u/1/XXXX網頁中的網址。然而,我成功地做了這個,但它並不適用於所有的網站,特別是因爲我使用了innerHTML並從那裏改變了網址。如何通過Chrome擴展程序獲取新鏈接的推薦鏈接?

所以我想到的是趕上它的URL加載和中途改變它。不過,我想知道它來自哪個引薦來源,因爲如果它是從plus.google.com本身點擊的,那麼我不要想要對它做任何事情。我只想將網址變化的事情用於plus.google.com之外的鏈接。

我該如何解決我的Chrome擴展問題?

回答

0

我能夠通過content scripts在概念上做類似的事情,並在目標頁面上注入腳本。這不會更改頁面中的鏈接,而是會將用戶轉發到新的URL,只要它不從特定主機轉發即可。我做了一個文件名爲的script.js是這樣的:類似這樣的

if (document.referrer != "") // Check if referrer isn't empty 
{ 
    var referringURL = document.referrer; 
    var referrerArray = referringURL.split('/'); // Split the referrer into an array. 

    if (referrerArray[2] != "plus.google.com") // Grab the hostname and compare 
    { 
    location.replace("https://plus.google.com/u/1/"+referrerArray[3]); // Redirect with XXXX 
    } 
} 

而且事情會在清單:

"content_scripts": [ 
    { 
     "matches": [ 
      "https://plus.google.com/*", 
      "http://plus.google.com/*" 
     ], 
     "js": ["script.js"] 
    } 
    ] 

我沒有測試過這種特定的代碼,但它很相似到我用過的很好的工作。這不是很優雅,我知道,所以我已經切換到webRequest/webRequestBlocking,我認爲這是更好,但我仍然試圖找出如何通過推薦人排除。不幸的是,那一部分還沒有運氣。

+0

不錯!我一上電腦就會檢查出來。 – Propeller

相關問題