Страницы: 1
Переключать проигрывания анимации(Firefox)
Автор: bunda1
Описание: Kод добавляет новый пункт в контекстное меню страницы:Показывать анимацию(gif) и дает возможность останавливать анимацию на всех страницах или запускать в новых страницах или после обновления уже открытых страниц.
Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.
//Переключать проигрывания анимации(toggle gif)...................................... (function() { //Стоп, если функция уже выполнялась.......... if (document.getElementById("context-toggleGif")) return; //Объявляем prefs, Iam, x.......... var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch); var Iam = "image.animation_mode"; var x = custombuttons.getPrefs(Iam) == "normal" ? true : false; //Функция переключения проигрывания анимации.......... toggleGif = function(event){ //переключаем настройки в about:config var aMode = custombuttons.getPrefs(Iam); var val = custombuttons.getPrefs(Iam) == "normal" ? "none" : "normal"; prefs.setCharPref(Iam, val); //Запускаем функцию "stopGif" или обновляем страницу (aMode =='normal')? stopGif(event) : BrowserReload(); }; //Функция останавливает проигрывания анимации после загрузки текущей страницы.......... function stopGif(event){ if (!gBrowser.mCurrentTab.getAttribute("busy")){ BrowserStop();} }; //Обработчик следит за переключением на другие табы.......... gBrowser.tabContainer.addEventListener("TabSelect",function(event){ //Фильтр if (custombuttons.getPrefs(Iam)=='normal') return; //Останавливаем проигрывания анимации... if (!gBrowser.mCurrentTab.getAttribute("busy")){ BrowserStop();} }, false); //Создаем новый пункт контекстного меню.......... var menuitem = document.createElement("menuitem"); menuitem.setAttribute("id", "context-toggleGif"); menuitem.setAttribute("oncommand", "toggleGif(event);"); menuitem.setAttribute("type", "checkbox"); menuitem.setAttribute("checked", x); menuitem.setAttribute("autocheck", true); //настройки языка(language settings) var locale = Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefBranch) .getCharPref("general.useragent.locale"); menuitem.setAttribute("label", locale.indexOf("ru") == -1 ? "Show animation(gif)" : "Показывать анимацию(gif)"); //Установить положение нового пункта относительно других пунктов меню var selectall = document.getElementById("context-selectall"); if (!selectall) return; selectall.parentNode.insertBefore(menuitem, selectall); //Устанавливаем где показывать новый пункт меню.......... document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", function(e) { if (e.target != this) return; if (gContextMenu) //когда не показывать falseItem = gContextMenu.isTextSelected || gContextMenu.onLink || gContextMenu.onImage || gContextMenu.onTextInput; gContextMenu.showItem("context-toggleGif", !falseItem); }, false); })();
Отсутствует
bunda1
В , если установить browser.newtab.url - about:home, отключить анимацию и открыть новую вкладку, то вместо about:home открывается about:blank. Можешь подправить?
Отсутствует
voqabuhe
Странно, этот код ни как не связан с открытием новых вкладок.
Добавлено 30-10-2013 23:33:51
Завтра посмотрю что там.
Отредактировано bunda1 (30-10-2013 23:33:51)
Отсутствует
на глючит Сustom Buttons - кнопки не инициализируется.
У меня не глючит, к Сustom Buttons вообще никаких претензий. А версия у тебя такая custombuttons-0.0.5.7pre1-2013 0923 ?
Отсутствует
Страницы: 1