簡體   English   中英

chrome.webRequest.onBeforeRequest僅重定向最后一個URL

[英]chrome.webRequest.onBeforeRequest Only Redirect the last URL

我正在構建一個擴展程序,如果URL在黑名單中,它將重定向到google.com。 我將黑名單存儲在本地的文件“ list.txt”中,並使用XMLHttpRequest檢索URL列表。 我遇到的問題是,如果URL是列表中的最后一個,則chrome.webRequest.onBeforeRequest僅重定向。 這是我的代碼:

var list = ["something.something/something"];

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && xhr.status == 200) {
        list = xhr.responseText.split(/\n/);
        abc();
    }
}

xhr.open("GET", chrome.extension.getURL('text/list.txt'), true);
xhr.send(null);

function abc() {
    chrome.webRequest.onBeforeRequest.addListener(
        function (details) {
            return {redirectUrl: "https://google.com"};
        },
        {urls: list, types: []},
        ["blocking"]);
}

文件“ list.txt”為:

*://*.domain1.com/*
*://*.domain2.com/*
*://*.domain3.com/*
*://*.domain4.com/*

僅當URL為domain4.com時才重定向。

請幫忙。

請注意,我聲明

var list = ["something.something/something"];

因為chrome.webRequest.onBeforeRequest將在列表為空時重定向每個URL。

我希望您使用Windows保存.txt文件,該文件以\\r\\n結尾。 因此,除最后一個URL之外的所有URL均以\\r結尾。 我建議:

list = xhr.responseText.split(/\r?\n/);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM