2011-12-03 82 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

相关问题