Pull to refresh

JS-SWITCH или как выключить Javascript

Хочу рассказать вам о своем опыте создания плагина для браузера Firefox. Я являюсь пользователем браузера Firefox. После последнего обновления 39.0 я решил открыть панель настроек, хотя открываю я ее всего один раз, после установки браузера, чтобы настроить его под себя. Так вот полазив по настройкам, я обнаружил, а точнее не обнаружил, опции “Включить Javascript”.

Конечно же, сразу захотелось его выключить, а нельзя; цитата из к/ф “О чем говорят мужчины”:
Пример: тебе запретили есть вилкой.
— Кто?!
— Ну не знаю. Сказали: «Никогда больше не будешь есть вилкой!» Казалось бы, ну и хрен бы с ней, можно ложкой, палочками, руками… Но тебе сказали: нельзя вилкой — и сразу захотелось именно вилкой.


Немного погуглив, я узнал, что выключить его можно, для этого в адресной строке браузера достаточно набрать about:config и нажать Enter. Далее появится загрузится страница с огромным количеством настроек:



Ищем параметр javascript.enabled, он то и отвечает за вкл/выкл Javascript-а. По умолчанию он принимает значение true, что значит, что он включен, конечно, можно его поменять, наведя курсор на параметр и нажав правую кнопку мыши, выбрать “Переключить”:



В рез-те чего значение true измениться на false и javascript выключиться, но делать это через страницу about:config не комильфо. Будет лучше если это можно будет делать при помощи специальной кнопки на панели. А чтобы эта кнопка появилась надо писать плагин. Писать конечно будем на javascript-е (чтобы потом его выключить). Для того чтобы написать плагин для firefox необходим add-on sdk. Скачать его ожно на официальном сайте компании Mozilla, там же можно найти и инструкцию по установке и созданию первого плагина.

Сразу привожу текст моего плагина:
var buttons = require('sdk/ui/button/action');
var preferences = require("sdk/preferences/service");

var jsEnabledName = "javascript.enabled";

var button = buttons.ActionButton({
    id: "jsswitchbutton",
    label: "Javascript(on/off)",
    icon: {
        "16" : "./icon-16.png",
        "32" : "./icon-32.png",
        "64" : "./icon-64.png"
    },

    onClick: handleClick
});

function handleClick(state) {
    var enabled = preferences.get(jsEnabledName);
    preferences.set(jsEnabledName, !enabled);

    if(enabled)
        button.icon = {
            "16" : "./icon-16-off.png",
            "32" : "./icon-32-off.png",
            "64" : "./icon-64-off.png"
        };
    else
        button.icon = {
            "16" : "./icon-16.png",
            "32" : "./icon-32.png",
            "64" : "./icon-64.png"
        };
}

После установки плагина на основной панели появится кнопка JS:



Нажав, на которую Javascript будет выключен и кнопка изменит свой вид на черно-белый:

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.