Arhn - архитектура программирования

Страница настроек расширения Chrome

У меня есть этот фрагмент кода (спасибо Shah Abax Khan), и я хотел сделать его Chrome расширение. Я написал страницу настроек/параметров, но на самом деле она не сохраняет настройки. Помощь?

Javascript:

var pretty_fied = false;
var isOn = localStorage.isOn;
var isCapFirst = localStorage.isCapFirst;
var firstLetterPerWord = localStorage.firstLetterPerWord;



function yay() {

    if ($("#on").value == "on") {
        isOn = true;
        localStorage["isOn"] = true;
    }
    else {
        isOn = false;
        localStorage["isOn"] = false;
    }


    if ($("#first").value == "on") {
        isCapFirst = true;
        localStorage["isCapFirst"] = true;
    }
    else {
        isCapFirst = false;
        localStorage["isCapFirst"] = false;
    }


    if ($("#per").value == "on") {
        firstLetterPerWord = true;
        localStorage["firstLetterPerWord"] = true;
    }
    else {
        firstLetterPerWord = false;
        localStorage["firstLetterPerWord"] = false;
    }


};



$('input, textarea').keyup(function () {

    alert(isOn);
    if (isOn) {

        prev = true;

        var value = $(this).val();
        var altText = '';
        for (num = 0; num < value.length; num++) {
            if (num % 2 == 0)
                altText += value[num].toUpperCase();
            else
                altText += value[num].toLowerCase();
        }
        $(this).val(altText);
    }


});

И вот HTML:

<!DOCTYPE html>
<html>
    <head>
        <title>Y.A.Y | Options</title>
        <script type="text/javascript" src="/js/caps.js"></script>
    </head>

    <body>
        <h1>Settings</h1>
        <form>

            <label>Enabled: </label>
            <select id="on">
                <option value="on">Yes</option>
                <option value="off">No</option>
            </select>

            </br>

            <label>First Letter:</label>
            <select id="first">
                <option value="on">Capital</option>
                <option value="off">Lowercase</option>
            </select>

            </br>

            <label>Change First Letter of Each </label>
            <select id="per">
                <option value="on">Word</option>
                <option value="off">Sentence</option>
            </select>

            <button id="done" onclick="yay()">Save</button>
        </form>
    </body>
</html>

yay() должен сохранять настройки, но это не так.


  • Вы можете использовать HTML5 localStorage, если хотите, но не встроенный js, как обработчик onclick. Всегда смотрите в консоль devtools, когда что-то не работает: там вы увидите ошибку. 09.02.2017

Ответы:


1

В расширении Chrome вы не должны использовать LocalStorage. Это для веб-сайтов.

Вместо этого используйте Хранилище Chrome следующим образом:

JavaScript:

var pretty_fied = false;

var isOn;
var isCapFirst;
var firstLetterPerWord;

getData()

function getData() {
    chrome.storage.sync.get( function ( data ) {
        isOn = data.isOn;
        isCapFirst = data.isCapFirst;
        firstLetterPerWord = data.firstLetterPerWord;
    } )
}

function yay() {
    isOn = $("#on").value == "on";
    isCapFirst = $("#first").value == "on";
    firstLetterPerWord = $("#per").value == "on";

    chrome.storage.sync.set( {
        isOn: isOn,
        isCapFirst: isCapFirst,
        firstLetterPerWord: firstLetterPerWord
    } )
}
09.02.2017
  • Ошибка в строке, где написано chrome.storage.sync.get( function ( data ) {. Я никогда не использовал Chrome Storage. Помогите? 09.02.2017
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..