Копировать ссылку как BBCode( Firefox 3.6 + )
Автор: bunda1
Версия: от 24.03.2015.
Описание: Kод добавляет в контекстное меню ссылки пункт позволяющий копировать ссылку как BBCode.
Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.

Выделить код

Код:

// Добавить новый пункт "Копировать ссылку как BBCode" в контекстном меню ссылок на странице от 24.03.2015. .....................
(function() {
   var menuitem = document.createElement("menuitem");   
   menuitem.setAttribute("label", "Копировать ссылку как BBCode");
   
   addEventListener("command", function() {
      try { var text = gContextMenu.linkText() } catch(e) { var text = gContextMenu.getLinkText() } 
      gClipboard.write('[url=' + gContextMenu.getLinkURL() + ']' + text  + '[/url]')
   }, true, menuitem); 
   
   var contextMenu = document.getElementById("contentAreaContextMenu")
   contextMenu.insertBefore( menuitem, document.getElementById("context-copylink") );
      
   addEventListener("popupshowing", function() menuitem.hidden = !gContextMenu.onLink, false, contextMenu );
   addDestructor(function() contextMenu.removeChild( menuitem ) );
})();

Копировать ссылку как BBCode+( Firefox 3.6 + )
Автор: bunda1
Версия: от 24.03.2015.
Описание: Kод добавляет в контекстное меню ссылки пункт Копировать ссылку как BBCode
левым кликом на пункте меню можно копировать ссылку как BBCode,
средним кликом на пункте меню можно копировать ссылку как BBCode с текстом из буфера обмена,
правим кликом на пункте меню можно изменить текст ссылки для копирования ссылки как BBCode.
Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.

Выделить код

Код:

// Добавить новый пункт "Копировать ссылку как BBCode" в контекстном меню ссылок на странице, от 24.03.2015. .....................
(function() {
   var menuitem = document.createElement("menuitem");   
   menuitem.setAttribute("label", "Копировать ссылку как BBCode");      
   
   var contextMenu = document.getElementById("contentAreaContextMenu")
   contextMenu.insertBefore( menuitem, document.getElementById("context-copylink") );
   
   addEventListener("popupshowing", function() menuitem.hidden = !gContextMenu.onLink, false, contextMenu );
   addDestructor(function() contextMenu.removeChild( menuitem ) );
     
   addEventListener("click", function(e) {
      var url = gContextMenu.getLinkURL();
      try { var text = gContextMenu.linkText() } catch(e) { var text = gContextMenu.getLinkText() };   
      
      // левым кликом на пункт меню копировать ссылку как BBCode ....
      if ( e.button == 0 ) text = text;  
      
      // средним кликом на пункт меню копировать ссылку как BBCode с текстом из буфера обмена ....
      if ( e.button == 1 ) text = gClipboard.read();
        
      // правым кликом на пункт меню установить текст для BBCode ссылки ....  
      if ( e.button == 2) {                       
           var val = custombuttons.promptBox( text, 'Введите текст для сохранения ссылки как BBCode');
           text = val[0] ? val[1] : text;                 
           }
           
      contextMenu.hidePopup(); // закрыть контекстное меню         
      
      gClipboard.write("[url=" + url + "]"+ text + "[/url]"); 
   }, false, menuitem );
})();

Спасибо, прикольная кнопка. Вот только опять проблема ПКМ-Настроить...:)

mserv пишет

Спасибо, прикольная кнопка. Вот только опять проблема ПКМ-Настроить...:)

:) Аааааааaaaaa,  понял сейчас исправлю.



:)   Исправил.

Копировать ссылку как(BBCode)+(Firefox 3.6 +)
Исправил ошибки:
Не работала на Nightly(FF14).

bunda1
а ты бы не мог лучше починить расширение Bbcopy?

В чём проблема?

LongLogin
Вряд ли виноват мой код. У меня жесты мыши и скролинг на FF11 работают без проблем.
Сделай рестарт.

bunda1 пишет

В чём проблема?

Проблема в том, что дополнение требует доработок, а его автор больше не выходит на связь.
Проблемы описаны в этой теме.

iDev.Pi
Нет, не потяну.
Ну вроде там код простой но я расширениями и html-кодом раньше не занимался.

bunda1
ок, жаль.

Скажите а как то можно менять ее расположение в контекстном меню?
Очень хотелось бы видеть ее сразу после "Копировать ссылку"
Пробовал через меню эдитор, но он такого пункта вообще не видит.

villi311 пишет

Скажите а как то можно менять ее расположение в контекстном меню?
Очень хотелось бы видеть ее сразу после "Копировать ссылку"
Пробовал через меню эдитор, но он такого пункта вообще не видит.

Замени:

Выделить код

Код:

contextMenu.insertBefore( menuitem, document.getElementById("context-copylink") );

на

Выделить код

Код:

contextMenu.appendChild( menuitem );
bunda1 пишет

Замени:Выделить кодКод:contextMenu.insertBefore( menuitem, document.getElementById("context-copylink") );
на
Выделить код
Код:contextMenu.appendChild( menuitem );

Ничего не поменялось.

villi311 пишет

Ничего не поменялось.

Я проверял и мой совет работает, наверно конфликт с Menu Editor.

bunda1 пишет

Я проверял и мой совет работает, наверно конфликт с Menu Editor.

Menu Editor отключил вообще. Все по прежнему.

villi311
У себя меняю порядок в контекстном через userChrome.css так, может поможет.

Выделить код

Код:

#context-reload  {-moz-box-ordinal-group:12!important;}
#content-stopAllTab  {-moz-box-ordinal-group:13!important;}
#context-savepage  {-moz-box-ordinal-group:15!important;}
#context-selectall {-moz-box-ordinal-group:14!important;}
villa7 пишет

У себя меняю порядок в контекстном через userChrome.css так, может поможет.

Я пока вообще этого делать не умею. Даже не представляю что к чему.

okkamas_knife пишет

userchrome.css usercontent.css Настройка внешнего вида Firefox Уроки стилеписания

Спасиб за ссылки, буду пробовать, но я в этом полный ноль, так что врятли что то у меня путного получится.
А по теме ветки, опять вернулся к использованию расширения для копирования  BBCode, раз не получается поднять ее в нужное место.
Просто я по роду своей работы постоянно и очень много пользуюсь двумя пунктами Копировать ссылку и  Копировать ссылку как BBCode, поэтому для меня в силу привычки уж это так важно, чтобы в контекстном меню они шли первыми.
Ну да ладно, раз не получилось с кнопкой, будем пользовать и дальше расширение.

bunda1 пишет

Копировать ссылку как BBCode+

Можешь для [nightly] подправить? Пункт в меню  есть но не работает.

voqabuhe
Замените gContextMenu.linkText() на gContextMenu.getLinkText()

turbot
Спасибо,  работает. А как бы ещё сделать копирование только текста ссылки?

voqabuhe

скрытый текст

Выделить код

Код:

(function() {
   if ( document.getElementById("copy-link-text") ) return;
   var menuItem = document.createElement("menuitem"); 
   menuItem.id = "copy-link-text";
   menuItem.setAttribute("label", "Copy Link Text");
   menuItem.setAttribute("oncommand", "gClipboard.write(gContextMenu.getLinkText())");  
   document.getElementById("context-copylink").parentNode.insertBefore( menuItem, document.getElementById("context-copylink") );
   document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", function() {
   menuItem.hidden = !gContextMenu.onLink;
   }, false);
})();

turbot
Спасибо!!!

bunda1 пишет

Копировать ссылку как BBCode+( Firefox 3.6 + )
Автор: bunda1
Версия: от 24.03.2015.

А от чего зависит положение пункта в контекстном меню? Как бы его вернуть на прежнее место рядом с Копировать ссылку, как это было в предыдущей версии? А то сейчас он у меня получился в самом конце меню.

voqabuhe

скрытый текст

Выделить код

Код:

.insertBefore(menuitem, document.getElementById("context-copylink"));

вместо

Выделить код

Код:

.appendChild( menuitem );

voqabuhe пишет

А от чего зависит положение пункта в контекстном меню? Как бы его вернуть на прежнее место рядом с Копировать ссылку, как это было в предыдущей версии? А то сейчас он у меня получился в самом конце меню.

Упс, Копировать ссылку как BBCode+

turbot, bunda1, спасибо.