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

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.
  • Форумы
  •  » Firefox
  •  » Вставка ббкодов по горячим клавишам

№117-08-2016 15:29:15

zelenamanazakasamanasaka
Забанен
 
Группа: Members
Зарегистрирован: 17-08-2016
Сообщений: 2
UA: Firefox 43.0

Вставка ббкодов по горячим клавишам

Как настроить горячие клавиши чтобы обрамлять выделенный текст bbcode?

Отсутствует

 

№217-08-2016 17:40:40

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 51.0

Re: Вставка ббкодов по горячим клавишам

del

Отредактировано turbot (17-08-2016 17:40:58)

Отсутствует

 

№317-08-2016 19:18:42

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 51.0

Re: Вставка ббкодов по горячим клавишам

turbot пишет

del

Случайно отправилось. :blush: Но раз поднял тему, то пришлось делать. zelenamanazakasamanasaka, держите:
Custom Buttons + в секцию "Инициализация" новой или существующей кнопки (Как добавить кнопку(помощь для новичка)):

Выделить код

Код:

addEventListener('keydown', e=> {
    var BBCode, clipboard, clipboardText, br = window.gBrowser.selectedBrowser;
    if (document.activeElement != br) return;
    if (e.altKey && e.shiftKey && !e.ctrlKey && !e.metaKey) {
// Вставить BBCode по сочетанию клавиш Alt + Shift + код клавиши (не зависит от раскладки клавиатуры) в активную текстовую форму на странице
// Посмотреть коды клавиш можно здесь: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#Constants_for_keyCode_value
            switch (e.keyCode) {
                case 66: BBCode = 'b'; break; // Alt + Shift + B - жирный текст
                case 73: BBCode = 'i'; break; // Alt + Shift + I - наклонный текст
                case 76: BBCode = 'url'; break; // Alt + Shift + L - ссылка
                case 81: BBCode = 'quote'; break;  // Alt + Shift + Q - Цитата
                case 82: BBCode = 'quote'; clipboardText = gClipboard.read(); break;  // Alt + Shift + R - Цитата с текстом из буфера обмена
                case 83: BBCode = 'spoiler'; break; // Alt + Shift + S - спойлер
                case 84: BBCode = 'spoiler'; clipboard = gClipboard.read(); break;  // Alt + Shift + T - Спойлер с названием из буфера обмена
                case 85: BBCode = 'url'; isURL(); break;  // Alt + Shift + U - Ссылка с ссылкой из буфера обмена
                // и т.д.
                default: return;
            }
        e.preventDefault(); e.stopPropagation();
        br.isRemoteBrowser ? br.messageManager.loadFrameScript(
            `data:,(${encodeURIComponent(insert + ')("' + BBCode + ', ' + clipboard + ', ' + clipboardText + '");')}`, false
        ) : insert(BBCode, clipboard, clipboardText);
    }

    function isURL() {
        var uri, url = gClipboard.read().trim();
        if (!url) return;
        try {uri = makeURI(url)} catch(ex) {}
        if (uri) {
            clipboard = url;
        }
    }

    function insert(bb, cl, txt) {
        var elm = Services.focus.focusedElement;
        if (!elm || !("editor" in elm) || elm.hasAttribute("readonly")) return;
        var editor = elm.editor.QueryInterface(Components.interfaces.nsIPlaintextEditor);

        cl ? editor.insertText("[" + bb + "=" + cl + "]" + editor.selection + "[/" + bb + "]")
           : editor.insertText("[" + bb + "]" + (txt ? txt : editor.selection) + "[/" + bb + "]");
    }
}, false, gBrowser);

Добавлять свои - по образцу. Думаю разберетесь - кое-что откомментировал. На основе кода Dumby.

Выделить код

Код:

br.isRemoteBrowser

- кнопка, по идее, должна и с мультипроцессным режимом работать, но не проверял.

Отредактировано turbot (17-08-2016 19:19:38)

Отсутствует

 

№418-08-2016 12:34:11

zelenamanazakasamanasaka
Забанен
 
Группа: Members
Зарегистрирован: 17-08-2016
Сообщений: 2
UA: Firefox 43.0

Re: Вставка ббкодов по горячим клавишам

сэнкс, ну с кнопками понятно, а горячие клавиши там есть для вставки ббкодов?

Отсутствует

 

№518-08-2016 12:43:29

sonyas75
Участник
 
Группа: Members
Откуда: Ставрополь
Зарегистрирован: 22-03-2011
Сообщений: 557
UA: Firefox 45.0

Re: Вставка ббкодов по горячим клавишам

turbot
спасибо за код
zelenamanazakasamanasaka
вы действительно читать по-русски не умеете, или так, попридуриваться пришли, типа клоуна

Выделить код

Код:

// Вставить BBCode по сочетанию клавиш Alt + Shift + код клавиши (не зависит от раскладки клавиатуры) в активную текстовую форму на странице
// Посмотреть коды клавиш можно здесь: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#Constants_for_keyCode_value
            switch (e.keyCode) {
                case 66: BBCode = 'b'; break; // Alt + Shift + B - жирный текст
                case 73: BBCode = 'i'; break; // Alt + Shift + I - наклонный текст
                case 76: BBCode = 'url'; break; // Alt + Shift + L - ссылка
                case 81: BBCode = 'quote'; break;  // Alt + Shift + Q - Цитата
                case 82: BBCode = 'quote'; clipboardText = gClipboard.read(); break;  // Alt + Shift + R - Цитата с текстом из буфера обмена
                case 83: BBCode = 'spoiler'; break; // Alt + Shift + S - спойлер
                case 84: BBCode = 'spoiler'; clipboard = gClipboard.read(); break;  // Alt + Shift + T - Спойлер с названием из буфера обмена
                case 85: BBCode = 'url'; isURL(); break;  // Alt + Shift + U - Ссылка с ссылкой из буфера обмена
                // и т.д.

Отсутствует

 

№619-08-2016 04:35:59

AlexII
Участник
 
Группа: Members
Зарегистрирован: 12-05-2006
Сообщений: 78
UA: Firefox 48.0

Re: Вставка ббкодов по горячим клавишам

Ничего лучше CustomBB (Расширение для вставки BB-кодов - помогите довести до ума | Форум Mozilla Россия) я не видел. Жаль, что с последней версией (требование цифровой подписи) отвалилось.

Отсутствует

 
  • Форумы
  •  » Firefox
  •  » Вставка ббкодов по горячим клавишам

Board footer

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