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

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

№116-06-2013 18:42:46

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

[CB]"Не закрывать вкладку" в контекстном меню вкладки

"Не закрывать вкладку" в контекстном меню вкладки( SeaMonkey )
Автор: bunda1
Версия: от 21.05.2019.
Описание: добавляет новый пункт Не закрывать эту вкладку в контекстное меню вкладки, который блокирует закрытие вкладки и меняет стиль названия вкладки.

Скриншот:
f4dbde1bb688b9a9a88f0df82f8c40b6.jpg

Использование: создайте новую Custom Buttons кнопку и положите код в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.

Выделить код

Код:

// "Не закрывать эту вкладку" в контекстном меню вкладки SeaMonkey, от 21.05.2019. ................
(()=> {
   
   if ( this.hasAttribute("initialized") ) return;

   // Создать новый пункт меню ....               
   var menuitem = document.createElement("menuitem");
   menuitem.setAttribute("type", "checkbox");
   menuitem.setAttribute("label", "Не закрывать вкладку");
   menuitem.onclick =()=> {
     var tab = document.popupNode;
     tab.hasAttribute("tabProtect") ? tab.removeAttribute("tabProtect") : tab.setAttribute("tabProtect", true);
   };
   addDestructor(()=> menuitem.remove());
   
   
   // Добавить новый пункт меню в контекстного меню вкладки ....      
   addEventListener("popupshowing", (e, targ = e.originalTarget)=> {
      if (targ.getAttribute('anonid') != 'tabContextMenu') return;
      targ.insertBefore(menuitem, targ.children[2]); // перед вторым пунктом контекстного меню

      var tab = targ.triggerNode;
      menuitem.hidden = !tab.linkedBrowser.currentURI.scheme.startsWith("http");             
   }); 


   // Стиль для защищённой вкладки ....
   var str = '\
      .tabbrowser-tab[tabProtect="true"] {\
         color: blue !important;\
         font-style: italic !important;\
   }';
   var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
   var uri = makeURI("data:text/css," + encodeURIComponent(str));
   sss.loadAndRegisterSheet(uri, 0);     
   addDestructor(()=> sss.unregisterSheet(uri, 0));
 
 
   // Запретить закрывать защищенные вкладки изменив внутреннюю функцию Firefox ....
   var
      src = "gBrowser.removeTab = " + gBrowser.removeTab.toString(),
      str = '{\n\n if (aTab.hasAttribute("tabProtect")) return;',
      res = src.replace("{", str);
   eval(res);
   addDestructor(()=> eval(src));


   // Восстанавливать атрибут для защищённой вкладки после старта браузера ....
   Cc["@mozilla.org/suite/sessionstore;1"].getService(Ci.nsISessionStore).persistTabAttribute("tabProtect");

})();

Отредактировано bunda1 (16-11-2015 23:49:50)

Отсутствует

 

№216-06-2013 23:15:55

iDev.Pi
баг-репортёр
 
Группа: Extensions
Зарегистрирован: 31-01-2010
Сообщений: 2718
UA: Firefox 21.0

Re: [CB]"Не закрывать вкладку" в контекстном меню вкладки

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


mzfx

Отсутствует

 

№316-06-2013 23:31:07

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]"Не закрывать вкладку" в контекстном меню вкладки

iDev.Pi пишет

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

Например пооткрывает человек кучу вкладок и некоторые заблокирует и потом сможет спокойно все лишние закрыть одним жестом или кликом.
Кстати закрепление вкладки даёт похожую возможность но лично мне не удобно что вкладка уезжает куда то.

Отсутствует

 

№424-08-2013 11:45:51

Andrey_Krropotkin
Участник
 
Группа: Members
Зарегистрирован: 11-11-2011
Сообщений: 476
UA: Firefox 23.0

Re: [CB]"Не закрывать вкладку" в контекстном меню вкладки

bunda1 Попробовал твою кнопку. Вот что обнаружил:
1. При перезагрузке браузера, если открыты несколько вкладок, то все, кроме активной будут заблокированы.
2. Еще одна мелочь - в контекстном меню вкладки появляется два пункта "Не закрывать вкладку", не смертельно - легко устраняется.
И вопрос: Как перенести кнопку блокировки вправо (вместо стандартного крестика)?

Отсутствует

 

№525-08-2013 14:46:05

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]"Не закрывать вкладку" в контекстном меню вкладки

Andrey_Krropotkin
Да после обновления FF22 на FF23 многое поломалась. Буду исправлять.

Отсутствует

 

№612-10-2013 23:47:17

Northtech
Участник
 
Группа: Members
Зарегистрирован: 16-04-2011
Сообщений: 259
UA: Firefox 25.0

Re: [CB]"Не закрывать вкладку" в контекстном меню вкладки

bunda1
Если заблокировать вкладку, затем прикрепить ее, тогда вкладку можно закрыть.

Отсутствует

 

№713-10-2013 00:21:36

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: [CB]"Не закрывать вкладку" в контекстном меню вкладки

Northtech
Да кнопка глючная попробую завтра исправить.

Отсутствует

 

№809-11-2015 13:37:41

>ORG@niZM<
Участник
 
Группа: Members
Зарегистрирован: 20-08-2013
Сообщений: 66
UA: Firefox 38.0

Re: [CB]"Не закрывать вкладку" в контекстном меню вкладки

обнова будет?:blush:

Отсутствует

 

№916-11-2015 23:51:21

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 24.0

Re: [CB]"Не закрывать вкладку" в контекстном меню вкладки

Отсутствует

 

Board footer

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