>Форум 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=54462 |
bunda1 > 04-04-2012 21:16:10 |
Переключать проигрывания анимации(Firefox) Выделить код Код://Переключать проигрывания анимации(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); })(); |
voqabuhe > 30-10-2013 23:04:31 |
bunda1 |
bunda1 > 30-10-2013 23:23:00 |
voqabuhe 30-10-2013 23:33:51 |
bunda1 > 01-11-2013 00:02:25 |
voqabuhe |
voqabuhe > 01-11-2013 00:13:09 |
bunda1 пишет
У меня не глючит, к Сustom Buttons вообще никаких претензий. А версия у тебя такая custombuttons-0.0.5.7pre1-2013 0923 ? |
bunda1 > 01-11-2013 00:27:50 |
Да custombuttons-0.0.5.7pre1 01-11-2013 00:29:13 |