Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Opera - плагины, дополнения, панели, кнопки, утилиты

Модерирует : gyra, Maz

articlebot (26-09-2016 11:41): продолжение - Opera - плагины, дополнения, панели, кнопки и т.д. (часть 5)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

VSHY

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
/// Used from menu
//  VladSh (2015.04.06)
 
// Gets the selected text on the page and input fields; author: Lex1
var getSel = function(fConvertName /* several separate with # */, w /*window or frame*/) {
    var s = '';
    if (arguments.length < 2)
        w = window;
    var d = w.document;
    if (d.selection) {
        var r = d.selection.createRange();
        s = r ? r.text : '';
    }
    else {
        s = d.getSelection().toString();
        if (!s) {
            var e;
            var t = d.getElementsByTagName('textarea');
            var u = d.getElementsByTagName('input');
            var i = t.length;
            while (e = (i > 0) ? t[--i] : u[-i--]) {
                try {
                    if (e.offsetHeight > 0 && (s = e.value.substring(e.selectionStart, e.selectionEnd)))
                        break;
                }
                catch(x) {}
            }
        }
    }
    if (!s) {
        for (var j = 0, f; f = window.frames[j]; j++) {
            try {
                if (s = getSel(fConvertName, f)) break;
            }
            catch(x) {}
        }
    }
    if (fConvertName) {
        var converts = fConvertName.split('#');
        for (var i = 0; i < converts.length; i++) {
            if (converts[i].search('replace') == -1) {
                // evaluate js-function
                s = eval(converts[i] + '(' + JSON.stringify(s) + ')');
            }
            else {
                // replace predefined sibols to new text (often - empty string)
                var params = converts[i].replace(/\ {2,}/g, ' ').split(" "); /* deduplicate spaces & serarate */
                var newText = (params.length > 1 && params[2] != undefined) ? params[2] : '""';
                s = eval(JSON.stringify(s) + '.' + params[0] + '(/[' + params[1] + ']/g, ' + newText + ')');
            }
        }
    }
    return s;
};
 
// escape function with the Russian characters
function escapeRu(str) {
    var trans = [];
    for (var i = 0x410; i <= 0x44F; i++)
        trans[i] = i - 0x350;
    trans[0x401] = 0xA8;
    trans[0x451] = 0xB8;
    var ret = [];
    for (var i = 0; i < str.length; i++) {
        var n = str.charCodeAt(i);
        if (typeof trans[n] != 'undefined')
            n = trans[n];
        if (n <= 0xFF)
            ret.push(n);
    }
    return escape(String.fromCharCode.apply(null, ret));
}
 
// Items, opened url
var openUrl = function(url, sel, bFullScreen) {
    if (sel) {
        var params = '';
        if (bFullScreen)
            params = 'fullscreen=yes,scrollbars=yes,location=yes';
        else
            params = 'width=946,height=576,left=100,top=100,scrollbars=yes,location=no';
        window.open(url.replace('#SEL#', sel), '', params);
    }
};
// in small screen
var openUrlS = function(url, fcn) {
    openUrl(url, getSel(fcn), 0);
};
// in full screen
var openUrlF = function(url, fcn) {
    openUrl(url, getSel(fcn), 1);
};
 
// Insert tags around selected text
var insertTags = function(tagOpen, tagClose) {
    var ta = window.document.getElementsByTagName('textarea');
    if (ta.length) {
        var le = ta.length - 1;
        var t = ta[le];
        for (var i = le - 1; i >= 0; i--) {
            if (ta[i].rows >= 5 && ta[i].offsetHeight) {
                t = ta[i];
                break;
            }
        }
        var val = tagOpen + getSel('') + tagClose;
        var cpos = t.selectionStart;
        t.value = t.value.substr(0, cpos) + val + t.value.substr(t.selectionEnd);
        cpos += val.length;
        t.setSelectionRange(cpos, cpos);
        t.focus();
    }
};
 
// NB: link in address field should be selected
var copyStructure = function(type /* "html" or "bbcode" */) {
    var d = window.document;
    var url = '', lbl = '';
    var a = d.activeElement;
    if (a instanceof HTMLBodyElement) {
        url = d.location.href;
        lbl = d.title;
    }
    else {
        if (a.href.search('script') != -1) {
            lbl = a.href;
        }
        else {
            url = a.href;
            lbl = a.innerText;
        }
    }
    if (url)    {
        lbl = lbl.replace(/^\s+|\s+$/g, '');
        var t = d.createElement('textarea');
        switch (type) {
            case "bbcode":
                t.value = '' + lbl + '';
                break;
            case "html":
                t.value = '<a href="' + url + '">' + lbl + '</a>';
                break;
            default:
                alert('Структура ссылки ' + type + ' не обрабатывается. Копирование невозможно.');
                url = '';
                return;
        }
        t.style = 'position:fixed;opacity:0;left:0;top:0;';
        d.documentElement.appendChild(t);
        t.focus();
        t.setSelectionRange(0, t.value.length);
        setTimeout(function(){d.documentElement.removeChild(t)}, 200);
    }
    else {
        alert('Выбранный объект не обрабатывается. Копирование невозможно.');
        url = '';
    }
}

Всего записей: 1092 | Зарегистр. 19-05-2008 | Отправлено: 14:52 07-03-2016 | Исправлено: VSHY, 15:08 07-03-2016
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Opera - плагины, дополнения, панели, кнопки, утилиты
articlebot (26-09-2016 11:41): продолжение - Opera - плагины, дополнения, панели, кнопки и т.д. (часть 5)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru