Прокси-хранилище Chrome

Я пытаюсь включить/выключить расширение моего прокси-хрома после закрытия с помощью chrome.local.storage. Кажется, это не работает, может ли кто-нибудь привести несколько примеров того, как заставить работать такой код?

Прямо сейчас мой pac-прокси работает и включается и выключается. Локальное хранилище, похоже, вообще не работает, но я следовал всем примерам на сайте developer.chrome. Это не работает.

var channels;
var ny;
function endvpn() {
    // turn off vpn
    var config = {
         mode: "pac_script",
         pacScript: {
           data: "function FindProxyForURL(url, host) {\n" +
                 "  if (host == 'google.com /*')\n" +
                 "    return 'PROXY blackhole:80';\n" +
                 "  return 'DIRECT';\n" +
                 "}"
         }
    };
    
           chrome.storage.local.set({ny: false});
    // change vpn button
    document.getElementById("vpnbtn").innerHTML = "Start Vpn";
    // turn off event lisner for endvpn and start event listner to go back to startvpn       
    document.getElementById('vpnbtn').removeEventListener('click', endvpn, false);
    document.getElementById("vpnbtn").addEventListener("click", startvpn);
    
      
 
}
function startvpn() {
    // turn on vpn
    
  
    
    var config = {
        mode: "pac_script",
        pacScript: {
          data: "function FindProxyForURL(url, host) {\n" +
                "  if (host == 'google.com  /*')\n" +
                "    return 'PROXY blackhole:80';\n" +
                "  return 'PROXY 209.127.191.180:80';\n" +
                "}"
        }
      };
  
       chrome.storage.local.set({ny: true});
    
 
     // change vpn button
     document.getElementById("vpnbtn").innerHTML = "Stop Vpn";
    // turn off event lisner for startvpn and start event listner to go back to endvpn       
     document.getElementById('vpnbtn').removeEventListener('click', startvpn, false);
     document.getElementById("vpnbtn").addEventListener("click", endvpn);
     
         

}     

var rez = chrome.storage.local.get(ny); 
alert(rez);



    // start at startvpn
    document.getElementById("vpnbtn").addEventListener("click", startvpn);
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
101
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Большинство API-интерфейсов в расширениях Chrome являются асинхронными. Смотрите документацию здесь. Вы можете предоставить обратный вызов в качестве второго аргумента функции get, где вы можете использовать переменную:

chrome.storage.local.get('ny', function(result){
  alert(result.ny);
}); 

Ты лучший!

Arc Official 24.12.2020 05:15

Другие вопросы по теме