Javascript 如何通过Chrome扩展获得新链接的推荐人?
我正在尝试为自己制作一个实用的chrome扩展,以便在所有网站(不包括plus.google.com本身)的网页中自动将URL从plus.google.com/XXXX更改为plus.google.com/u/1/XXXX。我已经成功地做到了这一点,但是,它并不适用于所有的网站,特别是因为我正在使用innerHTML并从那里更改URL 所以我想的是在加载时捕获URL,并在中途更改它。然而,我想知道它来自哪个推荐人,因为如果它是从plus.google.com内部点击的,那么我不想对它做任何事情。我只想使用URL更改的东西来更改plus.google.com之外的链接Javascript 如何通过Chrome扩展获得新链接的推荐人?,javascript,url,google-chrome-extension,google-plus,Javascript,Url,Google Chrome Extension,Google Plus,我正在尝试为自己制作一个实用的chrome扩展,以便在所有网站(不包括plus.google.com本身)的网页中自动将URL从plus.google.com/XXXX更改为plus.google.com/u/1/XXXX。我已经成功地做到了这一点,但是,它并不适用于所有的网站,特别是因为我正在使用innerHTML并从那里更改URL 所以我想的是在加载时捕获URL,并在中途更改它。然而,我想知道它来自哪个推荐人,因为如果它是从plus.google.com内部点击的,那么我不想对它做任何事情。
我如何使用我的Chrome扩展来实现这一点?我可以通过在目标页面上注入脚本来实现类似的概念。这不会更改页面中的链接,而是将用户转发到一个新的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,我认为这更好,但我仍在试图找出如何通过推荐人进行排除。不幸的是,这方面还不走运。太好了!我一上电脑就会查出来。