我正在构建一个扩展程序,我想在其中阻止来自 chrome/firefox 浏览器的某些网站网址。
假设我有一个 URL 列表,我想将其设为黑名单。 因此,每当 Chrome 用户想要加入他们时,扩展程序就会重定向到我选择的另一个 URL(在代码中我将确定我想要的 URL)
通过一些研究,我设法为 CHROME 制作了这个
manifest.json
{
"name": "URL Block",
"description": "Redirect to another site",
"version": "1.0",
"manifest_version": 2,
"background": {
"scripts": [
"background.js"
]
},
"permissions": [
"webRequest",
"*://facebook.com/*",
"*://www.facebook.com/*",
"*://apple.com/*",
"*://www.apple.com/*",
"*://iptorrents.com/*",
"*://www.iptorrents.com/*",
"webRequestBlocking"
]
}
background.js
var host = "http://www.google.com";
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
return {redirectUrl: host + details.url.match(/^https?:\/\/[^\/]+([\S\s]*)/)[1]};
},
{
urls: [
"*://facebook.com/*",
"*://www.facebook.com/*",
"*://apple.com/*",
"*://www.apple.com/*",
"*://iptorrents.com/*",
"*://www.iptorrents.com/*"
],
types: ["main_frame", "sub_frame", "stylesheet", "script", "image", "object", "xmlhttprequest", "other"]
},
["blocking"]
);
所以这个扩展非常适合我想做的事情。 但现在我有一些问题。
问题:
假设我希望扩展程序重定向到 2 个不同的 URL (不仅仅是在 google.com 中,如我上面的示例所示。) [这意味着,当我输入网址:www.facebook.com 并按 Enter 键时,扩展程序会将特定选项卡重定向到 www.google.com 并打开一个新选项卡以重定向到 www.abc.com]
最佳答案
我不知道如何在 Chrome 中执行此操作,但使用 Firefox 可以这样做:
How can I change the User Agent in just one tab of Firefox?在该解决方案中,您可以在此处阅读有关redirectTo的信息,而不是使用httpChannel.setRequestHeader
执行httpChannel.redirectTo
:https://developer.mozilla.org/en-US/docs/XPCOM_Interface_Reference/nsIHttpChannel#redirectTo%28%29
关于javascript - Chrome 扩展程序可检查链接并重定向到另一个网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30922586/