2015-06-05 2 views
0

Сохранение и восстановление параметров!Возвращаемое значение chrome.webRequest based chrome.storage

Я пытаюсь блокировать некоторые сайты через 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

Вы можете объяснить, например, я новичок с javascript –

+0

Я попробую, когда я не на мобильный – Xan

Смежные вопросы