重定向到扩展名为 chrome 的本地文件
Redirect to local file in chrome extension
我正在尝试阻止某些页面并将用户重定向到扩展名内的文件,这是我的代码:
function onHeadersReceivedHandler(details) {
if (enabled && device && device.signature) {
var item = map[details.url.toString()];
if (!item) {
item = map[details.url.toString()] = details;
}
console.log("url: ", details.url.toString());
console.log("onBeforeRequest: ", item);
if (item.allowed === false) {
console.log("NOT ALLOWED ", item);
return {
redirectUrl: chrome.extension.getURL(blockUrl)
};
}
else if (item.allowed === true) {
console.log("ALLOWED ", item);
return details;
}
else {
console.log("NEED TO CHECK ", item);
item.allowed = false;
if (item.allowed === false) {
console.log("NOT ALLOWED AFTER CHECK: ", item);
return {
redirectUrl: chrome.extension.getURL(blockUrl)
};
}
}
}
}
chrome.webRequest.onHeadersReceived.addListener(onHeadersReceivedHandler, {
urls: ["http://*/*", "https://*/*"],
types: ["main_frame"]
}, ["responseHeaders", "blocking"]);
但是当此代码检测到被阻止的页面时,chrome 重定向到 about:blank 页面而不是我的阻止页面。最有趣的是,当我在打开阻止页面而不是刷新页面后激活扩展程序时一切正常,除了有时 css 未加载,但是当我键入 url 并按回车键时,它会转到 about:blank。这是 chrome 的问题还是我遗漏了什么?
刚刚添加:
"web_accessible_resources": [
"block.html"
]
在我的 manifest.json
我正在尝试阻止某些页面并将用户重定向到扩展名内的文件,这是我的代码:
function onHeadersReceivedHandler(details) {
if (enabled && device && device.signature) {
var item = map[details.url.toString()];
if (!item) {
item = map[details.url.toString()] = details;
}
console.log("url: ", details.url.toString());
console.log("onBeforeRequest: ", item);
if (item.allowed === false) {
console.log("NOT ALLOWED ", item);
return {
redirectUrl: chrome.extension.getURL(blockUrl)
};
}
else if (item.allowed === true) {
console.log("ALLOWED ", item);
return details;
}
else {
console.log("NEED TO CHECK ", item);
item.allowed = false;
if (item.allowed === false) {
console.log("NOT ALLOWED AFTER CHECK: ", item);
return {
redirectUrl: chrome.extension.getURL(blockUrl)
};
}
}
}
}
chrome.webRequest.onHeadersReceived.addListener(onHeadersReceivedHandler, {
urls: ["http://*/*", "https://*/*"],
types: ["main_frame"]
}, ["responseHeaders", "blocking"]);
但是当此代码检测到被阻止的页面时,chrome 重定向到 about:blank 页面而不是我的阻止页面。最有趣的是,当我在打开阻止页面而不是刷新页面后激活扩展程序时一切正常,除了有时 css 未加载,但是当我键入 url 并按回车键时,它会转到 about:blank。这是 chrome 的问题还是我遗漏了什么?
刚刚添加:
"web_accessible_resources": [
"block.html"
]
在我的 manifest.json