【发布时间】:2014-07-31 13:03:55
【问题描述】:
我在我的 background 脚本中使用chrome.webRequest.onBeforeRequest 来监听用户发出的所有请求。我的扩展现在只是一个清单和这个 bg 脚本。
然后我检查 url 是否与正则表达式匹配:
chrome.webRequest.onBeforeRequest.addListener(
checkRedirect, {urls: ["<all_urls>"]}, ["blocking"]
);
function checkRedirect(details) {
var location = getLocation(details.url);
if(/some_regex/.test(details.url)) {
var redirect_url = 'http://some_redirect.com' + location.pathname;
chrome.tabs.update({url: redirect_url});
}
return {cancel: false};
}
function getLocation(href) {
var l = document.createElement('a');
l.href = href;
return l;
};
因此,如果用户进入一个页面或点击该页面的链接,我想重定向他。 上面的代码几乎可以正常工作; 问题是页面请求时,例如CSS 然后这些 CSS 最终出现在用户屏幕上。
所以我想要的是只过滤对页面/点击的请求。如何做到这一点?
【问题讨论】:
标签: javascript google-chrome google-chrome-extension