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

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№102-11-2013 23:00:10

SendInfo
.
 
Группа: Members
Зарегистрирован: 14-02-2011
Сообщений: 271
UA: Firefox 28.0

Переключение ссылок(выделение текста в ссылках)

Использован код Link Toggler :: Дополнения Firefox, извлеченный renardfeu
Часто вы хотите скопировать часть текста ссылки, но вы не можете выделить текст ссылки и каждая манипуляция с текстом вызовет загрузку новой страницы, на которую ссылка указывает.
После установки этой кнопки вы найдете новый пункт "Переключение ссылок" в контекстном меню страницы. Для переключения ссылок на веб-странице просто нажмите на этот пункт - режим выделения включен. Следующее нажатие восстановит первоначальное состояние. Также вы можете нажимать на саму кнопку

Переключение ссылок

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u0441%u0441%u044B%u043B%u043E%u043A%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A//%20%u0441%u043E%u0437%u0434%u0430%u0442%u044C%20%u043D%u043E%u0432%u044B%u0439%20%u043F%u0443%u043D%u043A%u0442%20%u0432%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u043C%20%u043C%u0435%u043D%u044E%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20....%0A%20%20%20var%20menuitem%20%3D%20document.createElement%28%22menuitem%22%29%3B%20%20%20%0A%20%20%20menuitem.setAttribute%28%22id%22%2C%20%22togglelinks%22%29%3B%0A%20%20%20menuitem.setAttribute%28%22label%22%2C%20%22%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0438%22%20%29%3B%20%20%0A%20%20%20const%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%20%0A%20%20%20contextMenu.appendChild%28%20menuitem%20%29%3B%20%0A%20%20%20addDestructor%28function%28%20reason%20%29%20%7B%20contextMenu.removeChild%28%20menuitem%29%20%7D%29%3B%0A//%20%u043E%u0431%u0440%u0430%u0431%u0430%u0442%u044B%u0432%u0430%u0442%u044C%20%u043C%u044B%u0448%u0438%u043D%u044B%u0435%20%u043A%u043B%u0438%u043A%u0438%20%u043D%u0430%20%u043F%u0443%u043D%u043A%u0442%u0435%20%u043C%u0435%u043D%u044E%20....%20%20%20%20%0A%20%20%20addEventListener%28%22click%22%2C%20function%28e%29%20%7B%20%0Avar%20links%20%3D%20window.content.document.getElementsByTagName%28%22a%22%29%3B%0A%20%20%20%20for%28var%20i%20%3D%200%3B%20i%20%3C%20links.length%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20var%20href%20%3D%20links%5Bi%5D.getAttribute%28%27href%27%29%3B%0A%20%20%20%20%20%20%20%20if%28href%20%21%3D%20null%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20links%5Bi%5D.removeAttribute%28%27href%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20links%5Bi%5D.setAttribute%28%27_href%27%2C%20href%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20href%20%3D%20links%5Bi%5D.getAttribute%28%27_href%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28href%20%21%3D%20null%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20links%5Bi%5D.setAttribute%28%27href%27%2C%20href%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20links%5Bi%5D.removeAttribute%28%27_href%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%7D%2C%20false%2C%20menuitem%20%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0Avar%20links%20%3D%20window.content.document.getElementsByTagName%28%22a%22%29%3B%0A%20%20%20%20for%28var%20i%20%3D%200%3B%20i%20%3C%20links.length%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20var%20href%20%3D%20links%5Bi%5D.getAttribute%28%27href%27%29%3B%0A%20%20%20%20%20%20%20%20if%28href%20%21%3D%20null%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20links%5Bi%5D.removeAttribute%28%27href%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20links%5Bi%5D.setAttribute%28%27_href%27%2C%20href%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20href%20%3D%20links%5Bi%5D.getAttribute%28%27_href%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28href%20%21%3D%20null%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20links%5Bi%5D.setAttribute%28%27href%27%2C%20href%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20links%5Bi%5D.removeAttribute%28%27_href%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%20Link%20Toggler%200.3%0A%u0430%u0432%u0442%u043E%u0440%20Vitaly%20Dyatlov%0Ahttps%3A//addons.mozilla.org/ru/firefox/addon/link-toggler/%3Fsrc%3Dapi%0Arenardfeu%0Ahttps%3A//forum.mozilla-russia.org/viewtopic.php%3Fpid%3D631782%23p631782%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано SendInfo (02-11-2013 23:02:50)

Отсутствует

 

№212-12-2013 04:51:56

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 539
UA: Firefox 25.0
Веб-сайт

Re: Переключение ссылок(выделение текста в ссылках)

Спасибо!
Благодаря этой кнопке отключил аддон LinkToggle.
Добавил переключение ссылок по горячей клавише Ctrl-Alt-Пробел.
В приведённом ниже коде само это переключение закомментировано, чтобы юзер мог изменить горячую клавишу на другую.
Если же его устраивает эта - просто раскомментируйте строку

Модифицированный чуть-чуть код

Выделить код

Код:

/*Initialization Code*/
// создать новый пункт в контекстном меню на странице ....
   var menuitem = document.createElement("menuitem");   
   menuitem.setAttribute("id", "togglelinks");
   menuitem.setAttribute("label", "Переключить ссылки" );  
   const contextMenu = document.getElementById("contentAreaContextMenu"); 
   contextMenu.appendChild( menuitem ); 
   addDestructor(function( reason ) { contextMenu.removeChild( menuitem) });
// обрабатывать мышиные клики на пункте меню ....  
function TgLinks() {
var links = window.content.document.getElementsByTagName("a");
    for(var i = 0; i < links.length; i++) {
        var href = links[i].getAttribute('href');
        if(href != null) {
            links[i].removeAttribute('href');
            links[i].setAttribute('_href', href);
        } else {
            var href = links[i].getAttribute('_href');
            if(href != null) {
                links[i].setAttribute('href', href);
                links[i].removeAttribute('_href');
            }
        }
    }
}  
addEventListener("click", function(e) {TgLinks()}, false, menuitem );
addEventListener('keydown',function(e){
  //if (e.ctrlKey && e.altKey && !e.shiftKey && (e.keyCode==32))TgLinks(); //Раскомментируйте эту строку (вначале), если Вас устраивает такая комбинация клавиш
},0,gBrowser);


P.S. В исправленном коде есть  баг - не копируйте пока
Исправил - только не ставьте кнопку на Vertical Toolbar - переключение по горячей клавише не будет работать сразу, а только лишь после псевдоредактирования кнопки.
На остальных тулбарах - работает сразу, даже если сам тулбар закрыт.

Отредактировано difabor (12-12-2013 23:22:37)


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

Board footer

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