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

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№104-04-2012 21:16:10

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

[CB]Переключать проигрывания анимации

Переключать проигрывания анимации(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);
})();

Отсутствует

 

№230-10-2013 23:04:31

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 28.0

Re: [CB]Переключать проигрывания анимации

bunda1
В [nightly], если установить browser.newtab.url - about:home, отключить анимацию и открыть новую вкладку, то вместо  about:home открывается about:blank. Можешь подправить?

Отсутствует

 

№330-10-2013 23:23:00

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

Re: [CB]Переключать проигрывания анимации

voqabuhe
Странно, этот код ни как не связан с открытием новых вкладок.

Добавлено 30-10-2013 23:33:51
Завтра посмотрю что там.

Отредактировано bunda1 (30-10-2013 23:33:51)

Отсутствует

 

№401-11-2013 00:02:25

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

Re: [CB]Переключать проигрывания анимации

voqabuhe
Да есть такой глюк но не получается исправить, на [nightly] глючит Сustom Buttons - кнопки не инициализируется.

Отсутствует

 

№501-11-2013 00:13:09

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 28.0

Re: [CB]Переключать проигрывания анимации

bunda1 пишет

на [nightly] глючит Сustom Buttons - кнопки не инициализируется.

У меня не глючит, к Сustom Buttons вообще никаких претензий. А версия у тебя такая custombuttons-0.0.5.7pre1-2013 0923 ?

Отсутствует

 

№601-11-2013 00:27:50

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

Re: [CB]Переключать проигрывания анимации

Да custombuttons-0.0.5.7pre1 :/

Добавлено 01-11-2013 00:29:13
Завтра еще попробую.

Отредактировано bunda1 (01-11-2013 00:29:13)

Отсутствует

 

Board footer

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