Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript Chrome扩展重定向两个选项卡

Javascript Chrome扩展重定向两个选项卡,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我做了一个简单的Chrome扩展,它允许我将一个站点重定向到另一个站点。但是在一个随机的网站中,当我在该site1.com链接上单击“在新选项卡中打开链接”按钮时,当前和新选项卡都会重定向到site2.com 这是我的manifest.json: { "manifest_version": 2, "name": "name", "description": "description", "version": "1.0", "background": {

我做了一个简单的Chrome扩展,它允许我将一个站点重定向到另一个站点。但是在一个随机的网站中,当我在该site1.com链接上单击“在新选项卡中打开链接”按钮时,当前和新选项卡都会重定向到site2.com

这是我的
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)

谢谢,
重定向URL
非常有用

这是工作版本

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"]
);

如文档所示,通过返回具有redirectUrl属性的对象来更改URL本身。