Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过Chrome扩展获得新链接的推荐人?_Javascript_Url_Google Chrome Extension_Google Plus - Fatal编程技术网

Javascript 如何通过Chrome扩展获得新链接的推荐人?

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扩展,以便在所有网站(不包括plus.google.com本身)的网页中自动将URL从plus.google.com/XXXX更改为plus.google.com/u/1/XXXX。我已经成功地做到了这一点,但是,它并不适用于所有的网站,特别是因为我正在使用innerHTML并从那里更改URL

所以我想的是在加载时捕获URL,并在中途更改它。然而,我想知道它来自哪个推荐人,因为如果它是从plus.google.com内部点击的,那么我不想对它做任何事情。我只想使用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,我认为这更好,但我仍在试图找出如何通过推荐人进行排除。不幸的是,这方面还不走运。

太好了!我一上电脑就会查出来。