Javascript 事件侦听器函数中的chrome.webrequest
当您单击扩展中的开始按钮时,我正在尝试启动webrequest侦听器。但是,它不起作用。但是,当我在函数外部添加webrequest侦听器时,它仍然可以工作。这是我的密码: manifest.json background.jsJavascript 事件侦听器函数中的chrome.webrequest,javascript,google-chrome,webrequest,event-listener,Javascript,Google Chrome,Webrequest,Event Listener,当您单击扩展中的开始按钮时,我正在尝试启动webrequest侦听器。但是,它不起作用。但是,当我在函数外部添加webrequest侦听器时,它仍然可以工作。这是我的密码: manifest.json background.js 当我在background.js中取消注释注释部分时,阻塞就起作用了。我猜这与webrequest的基础不一致有关,但我不确定。谢谢 弹出窗口和背景页面不相同。尝试使用以下方法访问后台的startBlock函数: 非常感谢!这很有效。我是javascript新手,我的原
当我在background.js中取消注释注释部分时,阻塞就起作用了。我猜这与webrequest的基础不一致有关,但我不确定。谢谢 弹出窗口和背景页面不相同。尝试使用以下方法访问后台的startBlock函数:
非常感谢!这很有效。我是javascript新手,我的原始代码中发生了什么?因为它记录了被屏蔽的站点,但没有添加侦听器。可以将弹出窗口和背景视为基本不同的页面。因此,在弹出窗口中没有startBlock功能。
{
"manifest_version": 2,
"name": "SimplyFocused",
"description": "This extension will stop procrastination.",
"version": "1.0",
"options_page": "options.html",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"webRequest",
"webRequestBlocking",
"<all_urls>"
],
"background": {
"scripts": ["background.js"]
}
}
<!doctype html>
<html>
<head>
<title>Simply Focused</title>
<link rel="stylesheet" href="bootstrap.min.css">
<link rel="stylesheet" href="style.css">
<script src="background.js"></script>
<script src="popup.js"></script>
</head>
<body id="popup">
<button class="btn btn-default" id="start">Start</button>
</body>
</html>
document.addEventListener('DOMContentLoaded', function () {
document.getElementById('start').addEventListener('click', startBlock);
});
if (localStorage.getItem("blocked") == null) {
localStorage.setItem("blocked", JSON.stringify([]));
}
function startBlock() {
var blockedSites = ["*://www.yahoo.com/*"];
console.log(blockedSites);
chrome.webRequest.onBeforeRequest.addListener(
function(details){console.log(details); return {cancel: true};},
{urls: ["*://www.yahoo.com/*"]},
["blocking"]);
}
// chrome.webRequest.onBeforeRequest.addListener(
// function(details){console.log(details); return {cancel: true};},
// {urls: ["*://www.yahoo.com/*"]},
// ["blocking"]);
document.addEventListener('DOMContentLoaded', function () {
document.getElementById('start').addEventListener('click', function() {
chrome.extension.getBackgroundPage().startBlock();
});
});