Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№112-03-2016 00:09:06

DoubleRa
Участник
 
Группа: Members
Зарегистрирован: 11-03-2016
Сообщений: 1
UA: Firefox 45.0

Некорректно работает сохранение JSON-файла

Пишу для себя простенькие утилиты. Сегодня удивился, когда увидел что пропадают пробелы во вложенньіх структурах
В начале подумал, что косяк в JSON.stringify, но вьівел на страницу - вроде норм.
Проверил на Хроме - там результат ожидаемьій: что в строке бьіло на входе, то и видим на вьіходе (в файле). На фф - пробел теряется..
Проверял на
ff45esr-x64-EN
ff45-x86-RU
ff43.0.1-x86-RU
Возможно, где-то и в моем коде косяк. Привожу пример:

Выделить код

Код:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <meta name="description" content="tool Pack JSON"/>
    <title>tool Pack JSON</title>
</head>
<body>
<div id="info">Use a browser Chrome/Firefox with keys like as: --unlimited-quota-for-files --allow-file-access-from-files</div>
<script type="text/javascript">
window.onload = function () {
    var de, i, lang, locale, pack,
        de_info = document.getElementById("info"),
        LANGUAGES = ["en", "uk"];

    function record (s1, s2) {
        if (s2 === "") {
            s2 = s1;
        }
        return { fullName: s1, briefName: s2 };
    }

    for (i = 0; i < LANGUAGES.length; i++) {
        lang = LANGUAGES[i];
        switch (lang) {
        case "en":
            locale = {};
            locale.menuNames = ["WORDS", "RESULTS", "HELP", "QUIT"];
            locale["car"] = record("CAR", "");
            locale["rain"] = record("RAIN RAINING", "RAIN END");
            locale["bla"] = record("BLA BLA BLA", "WHAT THE LUCK?");
            break;
        case "uk":
            locale = {};
            locale.menuNames = ["СЛОВА", "РЕЗУЛЬТАТИ", "ДОВІДКА", "ВИХІД"];
            locale["car"] = record("ТАЧКА", "");
            locale["rain"] = record("ДОЖДЬ ИДЕТ", "ДОЖДЬ ЗАКОНЧИЛСЯ");
            locale["bla"] = record("БЛА БЛА БЛА", "ЧТО ЗА ФИГНЯ?");
            break;
        }

        pack = JSON.stringify(locale);
              de_info.innerHTML += "<br>" + pack;

        de = document.createElement("a");
        de.setAttribute("download", "lang-" + lang + ".dat");
        de.href = "data:text;charset=utf-8," + pack.toString();
        de.innerHTML = "Save";
        document.body.appendChild(de);
        de.click();
    }

    de.innerHTML += "<br>Good work!";
}
</script>
</body>
</html>

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]