>Форум 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=56202 |
bunda1 > 30-08-2012 21:48:15 |
Переключить скролбар через контекстное меню панелей инструментов(Firefox) Выделить код Код:// Переключить скролбар через контекстное меню панелей инструментов ..................................................... (function() { // Стоп, если новый пункт меню уже существует .... if (document.getElementById("hideScrollbar")) return; // Oбъявляем переменные для всего кода ..... var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService); var s = "CB.hideScrollbar"; // Проверить наличие строк в about:config и создать если не существует ................................................... if ( !custombuttons.isPref(s) ) prefs.setBoolPref(s, false); // Добавляем новый пункт в контекстное меню панелей инструментов ......................................................... var menuitem = document.createElement("menuitem"); menuitem.setAttribute("id", "hideScrollbar"); menuitem.setAttribute("oncommand", "event.stopPropagation(); ToggleScrollbarPreferences(event)"); // добавляем чекбокс(флажок) для нового пункта меню .... menuitem.setAttribute("type", "checkbox"); menuitem.setAttribute("checked", custombuttons.getPrefs(s) ); menuitem.setAttribute("autocheck", true); // текст нового пункта меню зависит от языка интерфейса .... menuitem.setAttribute("label", (prefs.getCharPref("general.useragent.locale") == "ru")? "Скрыть скролбар": "Hide scrollbar"); // добавляем как последний пункт меню в контекстное меню панелей инструментов .... document.getElementById("toolbar-context-menu").appendChild(menuitem); // Функция переключает настройки в 'about:config' ........................................................................ ToggleScrollbarPreferences = function(event) { custombuttons.setPrefs(s, !custombuttons.getPrefs(s)); // .... ToggleScrollbarStyle(event); }; // Функция добавляет или удаляет стиль для скролбара на страницах выбор завысит от настройки в 'about:config' ............ var ToggleScrollbarStyle = function(event) { var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"] .getService(Components.interfaces.nsIStyleSheetService); var str = 'html > scrollbar[orient=vertical], html > scrollbar[orient=horizontal] {visibility:collapse !important;}'; var uri = makeURI('data:text/css,'+encodeURIComponent( str )); // удалить стиль if ( !custombuttons.getPrefs(s) && sss.sheetRegistered(uri, sss.AGENT_SHEET) ) sss.unregisterSheet(uri, sss.AGENT_SHEET); // добавить стиль if ( custombuttons.getPrefs(s) ) sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); }; ToggleScrollbarStyle(event); })(); |