Страницы: 1
"Не закрывать вкладку" в контекстном меню вкладки( SeaMonkey )
Автор: bunda1
Версия: от 21.05.2019.
Описание: добавляет новый пункт Не закрывать эту вкладку в контекстное меню вкладки, который блокирует закрытие вкладки и меняет стиль названия вкладки.
// "Не закрывать эту вкладку" в контекстном меню вкладки 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)
Отсутствует
bunda1
а приведи, пожалуйста, примеры, в каких случаях это могло бы быть полезно пользователю?
Например пооткрывает человек кучу вкладок и некоторые заблокирует и потом сможет спокойно все лишние закрыть одним жестом или кликом.
Кстати закрепление вкладки даёт похожую возможность но лично мне не удобно что вкладка уезжает куда то.
Отсутствует
bunda1 Попробовал твою кнопку. Вот что обнаружил:
1. При перезагрузке браузера, если открыты несколько вкладок, то все, кроме активной будут заблокированы.
2. Еще одна мелочь - в контекстном меню вкладки появляется два пункта "Не закрывать вкладку", не смертельно - легко устраняется.
И вопрос: Как перенести кнопку блокировки вправо (вместо стандартного крестика)?
Отсутствует
обнова будет?
Отсутствует
Исправил "Не закрывать вкладку" в контекстном меню вкладки для FF42+
Отсутствует
Страницы: 1