【发布时间】:2016-03-24 18:32:16
【问题描述】:
我正在制作一个 Chrome 扩展程序,它只允许用户访问给定白名单上的网站。 chrome.webRequest.onBeforeRequest 非常适合拦截和检查 URL,但我遇到的问题是它会检查所有传入的 URL,包括网页何时尝试加载资源。我希望它只检查用户输入的 URL,如果该 URL 在白名单上,我希望它允许该网页加载它需要的任何资源,无论它们是否在白名单上。
这是我的监听器代码。
chrome.webRequest.onBeforeRequest.addListener(
function(info) {
console.log("URL: " + info.url);
var pageURL = info['url'];
let mngwlst = new ManageWhitelist();
var whitelist = mngwlst.getWhitelist();
if(whitelist == null) mngwlst.setWhitelist([]);
var denyRequest = false;
var denyRequest = monitor.ExamineWhitelist(pageURL, whitelist);
console.log(denyRequest);
return {cancel: denyRequest}
},
{
urls: [
"<all_urls>"
],
},
["blocking"]);
monitor.ExamineWhitelist(pageURL, whitelist) 将根据 URL 是否在白名单中返回 true 或 false。
【问题讨论】:
-
我知道这个问题是专门针对 webRequest 提出的,但请务必查看 webNavigation (Firefox docsChrome docs),因为它与用户 URL 栏中显示的内容更密切相关。跨度>
标签: javascript google-chrome google-chrome-extension