保存并恢复选项!
我试图通过WebRequest阻止某些网站,但是当这个虚假的ckeckbox甚至仍然阻止该网站时,任何人都可以提供帮助,这就是我所拥有的代码
Options.js
function save_options(){
var blockurl_1 = document.getElementById("blockurl_1").checked;
var blockurl_2 = document.getElementById("blockurl_2").checked;
chrome.storage.sync.set({
blockurl_1: blockurl_1,
blockurl_2: blockurl_2
}, function() {
var status = document.getElementById('status');
status.textContent = 'Block';
});
}
function restore_options() {
chrome.storage.sync.get({
blockurl_1: false,
blockurl_2: false
}, function(items) {
document.getElementById('blockurl_1').checked = items.blockurl_1;
document.getElementById('blockurl_2').checked = items.blockurl_2;
});
}
document.addEventListener('DOMContentLoaded', restore_options);
var checkcontent = document.getElementsByClassName("save")[0];
checkcontent.addEventListener("click",save_options);
我自己需要这样做,但是使用chrome.storage
chrome.webRequest.onBeforeRequest.addListener(function(details) {
return {
cancel: ( localStorage["block_chat_seen"] == 'true' ) ? true : false
}
}, { urls: ['*://*.facebook.com/'] }, ['blocking'])
...
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
chrome.storage.sync.get(null, function(items) {
if (items.blockurl_1) {
chrome.webRequest.onBeforeRequest.addListener(function(details) {
var state = (blockurl_1 === true) ? 'true' : 'false';
return { cancel: state }; }, {
urls: ["*://www.google.com.co/*"]
},
["blocking"]);
}
if (items.blockurl_2) {
chrome.webRequest.onBeforeRequest.addListener(function(details) {
var state = (blockurl_2 === true) ? 'true' : 'false';
return { cancel: state }; }, {
urls: ["*://www.youtube.com.co/*"]
},
["blocking"]);
}
});
});
答案 0 :(得分:0)
您每次添加听众。
在添加新的之前,您需要清除现有的。