>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Сustom Buttons http://forum.mozilla-russia.org/viewforum.php?id=34 >[CB]"Не закрывать вкладку" в контекстном меню вкладки http://forum.mozilla-russia.org/viewtopic.php?id=59409 |
bunda1 > 16-06-2013 18:42:46 |
"Не закрывать вкладку" в контекстном меню вкладки( SeaMonkey ) Использование: создайте новую 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"); })(); |
iDev.Pi > 16-06-2013 23:15:55 |
bunda1 |
bunda1 > 16-06-2013 23:31:07 |
iDev.Pi пишет
Например пооткрывает человек кучу вкладок и некоторые заблокирует и потом сможет спокойно все лишние закрыть одним жестом или кликом. |
Andrey_Krropotkin > 24-08-2013 11:45:51 |
bunda1 Попробовал твою кнопку. Вот что обнаружил: |
bunda1 > 25-08-2013 14:46:05 |
Andrey_Krropotkin |
Northtech > 12-10-2013 23:47:17 |
bunda1 |
bunda1 > 13-10-2013 00:21:36 |
Northtech |
>ORG@niZM< > 09-11-2015 13:37:41 |
обнова будет? |
bunda1 > 16-11-2015 23:51:21 |
Исправил "Не закрывать вкладку" в контекстном меню вкладки для FF42+ |