[英]Redirect to new URL using onBeforeRequest and chrome.tabs.query (Chrome Extension)
美好时光。
我有一些有趣的想法,在输入用户输入的“输入”后,必须更改URL。
我的清单文件:
{
"name": "The Pirate Bay_2",
"description": "Redirect The Pirate Bay to a different host",
"version": "1.0",
"manifest_version": 2,
"browser_action": {
"default_title": "Saving Studio generator",
"default_popup": "popup.html"
},
"background": {"scripts":["redirect.js"]},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*"],
"js": ["background.js"]
}
],
"permissions":
[
"webRequest",
"https://www.amazon.com/",
"webRequestBlocking",
"tabs",
"activeTab"
]
}
我的redirect.js文件:
var host = "https://2ch.hk/b/";
chrome.tabs.query({
'active': true, 'currentWindow': true
}, function (tabs) {
var url = tabs[0].url;
host = host+url;
console.log(url);
});
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
if (localStorage.check_box == "true"){
console.log("start_1");
return {redirectUrl: host};
}
},
{
urls: ["https://www.amazon.com/" ],
types: ["main_frame", "sub_frame", "stylesheet", "script", "image", "object", "xmlhttprequest", "other"]
},
["blocking"]
);
主要是如何获取输入的URL ,以某种正则表达式模式将其更改, 返回生成的URL重定向到它。 怎么可能呢? 如何将chrome.tabs.query插入onBeforeRequest或不需要这样做 ,还有另一种方法?
太谢谢了
我必须使用也是异步的chrome存储API做类似的事情。 我所做的是将Web请求侦听器放在异步函数的回调中。 因此,在您的情况下:
var host = "https://2ch.hk/b/";
chrome.tabs.query(
{
'active': true, 'currentWindow': true
},
function (tabs) {
var url = tabs[0].url;
host = host+url;
console.log(url);
}
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
if (localStorage.check_box == "true"){
console.log("start_1");
return {redirectUrl: host};
}
},
{
urls: ["https://www.amazon.com/" ],
types: ["main_frame", "sub_frame", "stylesheet", "script", "image", "object", "xmlhttprequest", "other"]
},
["blocking"]
);
);
我尚未对此进行测试,但这是我在需要使用存储API时所做的,因此请尝试一下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.