2017-07-13 20 views
0

シンプルなChrome拡張機能を使用して、サイトを別のサイトにリダイレクトすることができます。しかし、ランダムなウェブサイトで、「site1.com」リンクの「新しいタブでリンクを開く」ボタンをクリックすると、現在のタブと新しいタブの両方がsite2.comにリダイレクトされます。ここでChrome拡張機能で両方のタブがリダイレクトされます

は私manifest.jsonです:

{ 
    "manifest_version": 2, 
    "name": "name", 
    "description": "description", 
    "version": "1.0", 
    "background": { 
     "scripts": [ 
      "background.js" 
     ] 
    }, 
    "permissions": [ 
     "*://*.site1.com/*", 
     "webRequest", 
     "webRequestBlocking", 
     "tabs" 
    ] 
} 

background.js

chrome.webRequest.onBeforeSendHeaders.addListener(
    function(tab) { 
     var getUrl = tab.url, 
      splitUrl = getUrl.split("/"), 
      title = splitUrl[4], 
      url = "https://site2.com/" + title; 
     chrome.tabs.update(tab.id, {url: url}); 
    }, 
    {urls: ["*://*.site1.com/*"]}, 
    ["blocking"] 
); 

それは理由chrome.webRequest.onBeforeSendHeadersまたはchrome.tabs.update(tab.id)ですか?

+2

ドキュメントに示されているように、redirectUrlプロパティを持つオブジェクトを返すことでURL自体を変更します。 – wOxxOm

答えて

0

ありがとう@wOxxOmredirectUrl非常に親切でした。

実用バージョンです。

chrome.webRequest.onBeforeRequest.addListener(
    function(tab) { 
     var getUrl = tab.url, 
      splitUrl = getUrl.split("/"), 
      title = splitUrl[4], 
      url = "https://site2.com" + title; 
     return { 
      redirectUrl: url 
     }; 
    }, 
    {urls: ["*://*.site1.com/*"]}, 
    ["blocking"] 
); 
関連する問題