background.js:
chrome.webRequest.onBeforeRequest.addListener(function (details) {
console.log(details.url);
window.location.href = 'http://time.com/';
}, {urls: ['<all_urls>']}, []);
当我访问网站时,它会在控制台中显示所有请求,但它不会将网站重定向到time.com。
其他信息:
我在背景控制台上遇到错误:
Error in event handler for webRequest.onHeadersReceived/1: ReferenceError: url is not defined at chrome.webRequest.onHeadersReceived.addListener.urls (chrome-extension://hkiajgmcjicgampfdeiiacbojlmdokob/background.js:5:8)
然后......在这种情况下,有没有办法在time.com上使用console.log查看请求?
我希望看到请求,而不需要在Chrome窗口上重定向。 我需要的只是请求在后台控制台中查看。
答案 0 :(得分:4)
webRequest API提供重定向功能。
在manifest.json中添加webRequestBlocking
,webRequest
和主机权限:
"permissions" : [
"webRequest",
"webRequestBlocking",
"http://www.example.com/*" /* or <all_urls> */
]
拦截您要重定向的网页(main_frame
)和iframe(sub_frame
)的请求(这些请求应在&#34;权限&#34;上面显示)一个blocking
听众:
chrome.webRequest.onBeforeRequest.addListener(function(details) {
console.log(details.url);
if (!details.url.startsWith('http://time.com/')) {
return {redirectUrl: 'http://time.com'};
}
}, {
urls: ['http://www.example.com/*'], // or <all_urls>
types: ['main_frame', 'sub_frame'],
}, [
'blocking'
]);
要查看后台控制台open it on chrome://extensions page。
此外,请务必阅读文档中的extensions architecture文章:背景页面是一个完全独立的页面,与网页无关,具有自己的上下文和自己的URL,如chrome-extension:/ /blablabla/background.html,无法导航到另一个URL。