0

Я разработал расширение Chrome и добавил переключатель On/Off для управления инъекциями сценариев контента.Chrome Extension - вход Checkbox установлен по умолчанию

В моем popup.html, следующий DIV был добавлен с помощью флажка:

<div class="onoffswitch"> 
<input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch" checked> 
<label class="onoffswitch-label" for="myonoffswitch"> 
    <span class="onoffswitch-inner"></span> 
    <span class="onoffswitch-switch"></span> 
</label> 

The popup.js является устанавливающим выбором 'onoffswitch' в хранилище хрома следующей :

$(document).ready(function() { 
$('#myonoffswitch').on('change', function(e) { 

    chrome.storage.sync.set({ 
     'myonoffswitch': ($(this).is(":checked")) 
    }, function() {}); 
}) 
chrome.storage.sync.get('myonoffswitch', function(storage) { 
    $('#myonoffswitch').prop('checked', (storage.myonoffswitch == true)); 
}) 

$('#myonoffswitch2').on('change', function(e) { 

    chrome.storage.sync.set({ 
     'myonoffswitch2': ($(this).is(":checked")) 
    }, function() {}); 
}) 
chrome.storage.sync.get('myonoffswitch2', function(storage) { 
    $('#myonoffswitch2').prop('checked', (storage.myonoffswitch2 == true)); 
}); 

})

Я пытаюсь сделать «onoffswitch» включенным по умолчанию при первоначальной установке расширения. Всякий раз, когда вы добавляете расширение, «onoffswitch» выключается, несмотря на объявление «checked» в поле «checkbox» в поле «popup.html».

Спасибо, Ido.

+0

Если я правильно понимаю, что это не работает: chrome.storage.sync.get ('myonoffswitch', function (storage) { $ ('# myonoffswitch'). Prop ('checked', (typeof storage .myonoffswitch === "undefined" || storage.myonoffswitch == true)) }) – andrew196

+0

В основном, что я делаю, это если оно не определено, поэтому по умолчанию также установите флажок флажка также – andrew196

+0

Спасибо @ andrew196 , это сработало отлично! – iDog

ответ

0

A более явный способ сделать это было бы установить параметры по умолчанию в обратном вызове установки расширения:

chrome.runtime.onInstalled.addListener(function (details) { 
    if (details.reason === "install") { 
     chrome.storage.sync.set({ 
      'myonoffswitch': true 
     }, function() {}); 
    } 
}); 

Это также имеет преимущество Decluttering оп логики доступа.

0

Если я понимания вы правильно бы это будет работать:

chrome.storage.sync.get('myonoffswitch', function(storage) { 
    $('#myonoffswitch').prop('checked', (typeof storage.myonoffswitch === "undefined" || storage.myonoffswitch == true)); 
}) 

В основном то, что я делаю, если это не определено, следовательно, по умолчанию также установлен пропеллер чекбокса также истинный

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

  • Нет связанных вопросов^_^