Показать сообщение отдельно
  #1 (permalink)  
Старый 29.05.2019, 15:57
Интересующийся
Отправить личное сообщение для MashaDo Посмотреть профиль Найти все сообщения от MashaDo
 
Регистрация: 29.05.2019
Сообщений: 10

Не воспринимается кириллица.
Добрый день. Помогите,пожалуйста, советом. Пишу расширение для хрома, которое бы заменяло слова на сайтах на те, которые прописаны у меня в файле.
В файле dictionaries содержатся слова: 1 колонка - что заменить, 2 колонка -на что заменить. Пример:
var dictionary={
"replacements": {
"TEX1" : "arb",
"Opera" : "Не опера",
"Маша" : "Мария" и т.д.
Так вот, с нахождением англ слов и заменой на англ - расширение справляется. С нахождением англ слов и заменой на ру - тоже. Но "Маша" : "Мария" он заменять отказывается, как и другие слова "ру на ру".

Привожу пример кода background.HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <!-- Тег meta для указания кодировки -->

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

   <head>
    <title>Background Page</title>
    <script src="dictionaries/original.js"></script>
    <script src="background.js"></script>
  </head>
  <body>
  </body>
</html>

___
dictionaries/original.js - тут лежат слова для замены с заменой.
__

файл background.js" показан ниже:

(function() {

    var ONE_DAY = 1000 * 60 * 60 * 24;

    var KEY_LAST_CHANGED_AT = 'lastChangedAt';
    var KEY_OPTIONS = 'options';
    var KEY_PAUSED = 'paused';

    var _alreadyQueued = false;

    function now() {
        return new Date().getTime();
    }

    function checkForRandomSwap() {
        var lastChangedAt, pollTimeout;
        var options = JSON.parse(localStorage.getItem(KEY_OPTIONS));

        if(options && options.checkDaily) {
            lastChangedAt = parseInt(localStorage.getItem(KEY_LAST_CHANGED_AT), 10);

            //не вносились изменения
            if(isNaN(lastChangedAt) || lastChangedAt + ONE_DAY < now()) {
                var pause = Math.random() > 0.5; // Flip a coin!
                lastChangedAt = setPaused(pause);
            }

            // Set up the next check.
            if(!_alreadyQueued) {
                pollTimeout = (lastChangedAt + ONE_DAY) - now();

                setTimeout(function() {
                    _alreadyQueued = false;
                    checkForRandomSwap();
                }, pollTimeout);
                
                _alreadyQueued = true;
            }
        }
    }

    function updateBadge(paused) {
        var badgeText = paused ? "OFF" : "";
        chrome.browserAction.setBadgeText( { text: badgeText } );
    }

    function isPaused() {
        return (localStorage.getItem(KEY_PAUSED) == 'true');
    }

    function setPaused(paused) {
        var lastChangedAt = now();

        localStorage.setItem(KEY_PAUSED, paused);
        chrome.storage.sync.set( { 'paused': paused } );
        updateBadge(paused);

        localStorage.setItem(KEY_LAST_CHANGED_AT, lastChangedAt);
        return lastChangedAt;
    }

    function togglePause(tab) {
        setPaused(!isPaused());

        // Reload the current tab.
        chrome.tabs.update(tab.id, {url: tab.url});
    }

    function getExcluded() {
        var opts = JSON.parse(localStorage.getItem(KEY_OPTIONS));
        return opts ? opts['excluded'] : [];
    }

    function onMessage(request, sender, sendResponse) {
        var requestId = request.id;

        if(requestId == 'isPaused?') {
            // TODO: Convert to boolean.
            sendResponse({value: isPaused()});
        }
        else if(requestId == 'getExcluded') {
            sendResponse({value: getExcluded()});
        }
        else if(requestId == 'setOptions') {
            localStorage.setItem(KEY_OPTIONS, request.options);
        }
        else if(requestId == 'getDictionary') {
            sendResponse(dictionary);
        }
    }

    chrome.browserAction.onClicked.addListener(togglePause);
    chrome.extension.onRequest.addListener(onMessage);



    updateBadge(isPaused());

    checkForRandomSwap();

})();

Последний раз редактировалось MashaDo, 29.05.2019 в 17:01.
Ответить с цитированием