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

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№106-02-2013 00:07:17

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 18.0

[CB]Toggle GIF Animation

Toggle GIF Animation 0.2.0 (2013-06-14)
Автор: Infocatcher
Описание:
Кнопка выключает/включает GIF-анимацию на текущей странице

Установить:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EToggle%20GIF%20Animation%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABblBMVEUAAADq6urr6+vm5ubnuaPgTC2enp7l5eWbm5vo6Ojp6emampr0Zkf2WjjupJPwUjCYmJjp6emZmZnpSSeXl5fp6enoVzjiPx2VlZXn5+fkTi7bNhSUlJTnVjfdORfVLgxtbW2tra3W1tbjUDHaNhTLLQ16enqjo6OkpKSpqamqqqqqqqqqqqqqqqq3dWjBSjLJKwzJKwvARCu1aVqkpKSkpKTORBH////j4+Pe3t7g4ODa2tr7cVLo6OjNNBXc3Nzp6eni4uLf39/n5+fhTi/8clPdSSvZ2dnoWDnh4eHdZi3Y2Nj4bU/ONRbvqJj8bk3ouK3sXT7X19fk5OT7gWLgTS/uYULdTiHtWTHYpJnVPiDoZEbAWEH8gWLq6urONBb1lH7qhW/gYiXnuaPUhnfQOBnrXD3d3d3bYSa7Lgq8Lwrm5ub4d1ntvbLgdV7fc13b29vbcVzoVznZRSfFOQ2dnZ36Yj/LYkv7cVO8MAsi43WXAAAANnRSTlMA19fn/v0e5zfnrTf9UPKjN9I35jfn/eY35/ajN/bmUAE4/vnpfQMTZpKkrLa80ef4996yciec+O5uAAAA5ElEQVR4Xj3M1XLDMBBA0VVTJ2nKzMzMIrPDjGVmZv77rt2Z3oeV9oxGAOBvJoRUuRESAqhO/Xd2aLUD0GvGWIqd4qSWVYPAKMa8Q9c98NZ394Ue7kag7pXdspsfGr7z4af0r63tz/zxQwCwIOflcm4zls3GMg0u1CZtXii+PXEeva+rR2iRMnkSebTt6MGR0ojQJBzndUPK74rhKK0IbeaViCQE7kJ0dCJ0qc/mS0KrGObHV08vQl86Ht/Z3TNUdb9/YBBgaHikVEqfX1xq2ujY+ATA5NT0zOzc/MLi0vLK6tr6L68zNH+FfEIKAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20http%3A//infocatcher.ucoz.net/js/cb/toggleGifAnimation.js%0A//%20https%3A//forum.mozilla-russia.org/viewtopic.php%3Fid%3D57977%0A//%20https%3A//github.com/Infocatcher/Custom_Buttons/tree/master/Toggle_GIF_Animation%0A%0A//%20Toggle%20GIF%20Animation%20button%20for%20Custom%20Buttons%0A//%20%28code%20for%20%22initialization%22%20section%29%0A%0A//%20%28c%29%20Infocatcher%202013%0A//%20version%200.2.0%20-%202013-06-14%0A%0Avar%20gifAnimation%20%3D%20%7B%0A%09//%20Note%3A%20we%20use%20original%20button%27s%20icon%20to%20indicate%20disabled%20state%0A%09iconEnabled%3A%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABlElEQVR4nI2SsUsCcRTHv+/yJGzS4kCRWqqpQ5xahYwER/8CGxoPh2rxP6itWXLQKQiXGiQh3JrUKYgIogbvQBwMTTB/r8XfeXde5BcOfvd+733e9/d+P2JmAEC5XN7MZrN3RKRiJiKCVzKfmZ81TctRt14Ro9uLxUwfhXLnWEkeSYipaVoUrXSYX/O77NTbic7MzO/HO654Kx1my7LYsiw2TbPLzAgAwPb1C9qHkYWO/Y8etgDXnjyClOItSj707fX38MeOOePMbIMCmHVwJtiA0RQA0EisgRRCZCPoKgYA6tYrontpLDXE6NkVWD+whxiLxaIkaaVSaT+TyTwB8+v75xrNeDweDTg3hBCuIu/A/EAugPyWdLAIkA4k5C8HzrgvwFvsB1twIIRwAZxyAprNJgaDAQA0CoXC/CFJB0IITKdTe+39b7fb6HQ6N7VaLW87MAyDUqkUCSGYZu39BggAk8nkMZFInOq6HioWi0NiZlSr1XUiyqmqukdEEQCrAEIAgo5aAeBrPB6PFEXpAfgEcP8LWVgYRnUM0zMAAAAASUVORK5CYII%3D%22%2C%0A%0A%09button%3A%20this%2C%0A%09getUtils%3A%20function%28win%29%20%7B%0A%09%09return%20win.QueryInterface%28Components.interfaces.nsIInterfaceRequestor%29%0A%09%09%09.getInterface%28Components.interfaces.nsIDOMWindowUtils%29%3B%0A%09%7D%2C%0A%09get%20mode%28%29%20%7B%0A%09%09var%20win%20%3D%20content%3B%0A%09%09var%20utils%20%3D%20this.getUtils%28win%29%3B%0A%09%09return%20utils.imageAnimationMode%3B%0A%09%7D%2C%0A%09set%20mode%28mode%29%20%7B%0A%09%09var%20win%20%3D%20content%3B%0A%09%09this.setMode%28win%2C%20mode%29%3B%0A%09%09this.updateState%28mode%29%3B%0A%09%7D%2C%0A%09toggle%3A%20function%28%29%20%7B%0A%09%09var%20ic%20%3D%20Components.interfaces.imgIContainer%3B%0A%09%09this.mode%20%3D%20this.mode%20%3D%3D%20ic.kNormalAnimMode%0A%09%09%09%3F%20ic.kDontAnimMode%0A%09%09%09%3A%20ic.kNormalAnimMode%3B%0A%09%7D%2C%0A%09setMode%3A%20function%28win%2C%20mode%29%20%7B%0A%09%09Array.forEach%28win.frames%2C%20function%28win%29%20%7B%0A%09%09%09this.setMode%28win%2C%20mode%29%3B%0A%09%09%7D%2C%20this%29%3B%0A%09%09var%20utils%20%3D%20this.getUtils%28win%29%3B%0A%09%09try%20%7B%0A%09%09%09utils.imageAnimationMode%20%3D%20mode%3B%0A%09%09%7D%0A%09%09catch%28e%29%20%7B%20//%20NS_ERROR_NOT_AVAILABLE%0A%09%09%7D%0A%09%7D%2C%0A%09updateState%3A%20function%28mode%29%20%7B%0A%09%09if%28mode%20%3D%3D%3D%20undefined%29%0A%09%09%09mode%20%3D%20this.mode%3B%0A%09%09var%20btn%20%3D%20this.button%3B%0A%09%09var%20icon%20%3D%20btn.ownerDocument.getAnonymousElementByAttribute%28btn%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0A%09%09icon.src%20%3D%20mode%20%3D%3D%20Components.interfaces.imgIContainer.kDontAnimMode%0A%09%09%09%3F%20btn.image%0A%09%09%09%3A%20this.iconEnabled%3B%0A%09%7D%2C%0A%09_updateStateTimer%3A%200%2C%0A%09updateStateDelayed%3A%20function%28%29%20%7B%0A%09%09clearTimeout%28this._updateStateTimer%29%3B%0A%09%09this._updateStateTimer%20%3D%20setTimeout%28function%28_this%29%20%7B%0A%09%09%09_this.updateState%28%29%3B%0A%09%09%7D%2C%2020%2C%20this%29%3B%0A%09%7D%0A%7D%3B%0A%0Athis.toggleGifAnimation%20%3D%20function%28%29%20%7B%0A%09gifAnimation.toggle%28%29%3B%0A%7D%3B%0Athis.setAttribute%28%22oncommand%22%2C%20%22this.toggleGifAnimation%28%29%3B%22%29%3B%0A%0Avar%20progressListener%20%3D%20%7B%0A%09onLocationChange%3A%20function%28aWebProgress%2C%20aRequest%2C%20aLocation%29%20%7B%0A%09%09gifAnimation.updateStateDelayed%28%29%3B%0A%09%7D%0A%7D%3B%0A//progressListener.onStateChange%20%3D%0A//%09progressListener.onProgressChange%20%3D%0A//%09progressListener.onStatusChange%20%3D%0A//%09progressListener.onSecurityChange%20%3D%20function%20dummy%28%29%20%7B%7D%3B%0A%0AgifAnimation.updateStateDelayed%28%29%3B%0AgBrowser.addProgressListener%28progressListener%29%3B%0Athis.onDestroy%20%3D%20function%28%29%20%7B%0A%09gBrowser.removeProgressListener%28progressListener%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bif%28%21event.target%29%20//%20Button%27s%20hotkey%20pressed%0A%09this.toggleGifAnimation%28%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E


Исходный код, секция «инициализация»: toggleGifAnimation.js

Отредактировано Infocatcher (14-06-2013 12:36:57)


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№206-02-2013 00:48:54

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 18.0

Re: [CB]Toggle GIF Animation

Тестовая версия, будьте осторожны!

Разрабатываемая версия


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№314-06-2013 12:38:32

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 21.0

Re: [CB]Toggle GIF Animation

Toggle GIF Animation 0.2.0 (2013-06-14)
+ Добавлено отображение текущего состояния GIF-анимации (включена/выключена).


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№412-10-2014 21:05:46

skynet281978
Участник
 
Группа: Members
Зарегистрирован: 09-03-2011
Сообщений: 508
UA: Firefox 28.0

Re: [CB]Toggle GIF Animation

Infocatcher пишет

Toggle GIF Animation 0.2.0 (2013-06-14)+ Добавлено отображение текущего состояния GIF-анимации (включена/выключена).

что-то она работает не совсем корректно.
порой кнопка отображает что она включена и блокирует якобы анимацию. но я её не включал.
пользуюсь пока предыдущей версией по совету одного пользователя.

Отсутствует

 

№512-10-2014 22:13:01

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 32.0

Re: [CB]Toggle GIF Animation

skynet281978
Это невозможно исправить, кнопка показывает то, что сообщает ей Firefox.
https://developer.mozilla.org/en-US/doc … Attributes
В некоторых случаях

Выделить код

Код:

// Components.interfaces.imgIContainer.kDontAnimMode // 1
// Components.interfaces.imgIContainer.kNormalAnimMode // 0
content.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
    .getInterface(Components.interfaces.nsIDOMWindowUtils)
    .imageAnimationMode;

выдает неверные данные.
Как минимум, если в другой вкладке есть такая же анимированная картинка, что и во вкладке, на которой была отключена анимация. Например, это видно, если открыть две вкладки с https://ru.wikipedia.org/wiki/GIF. А если обновить одну из вкладок, анимация запустится и на второй.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№613-10-2014 01:43:09

skynet281978
Участник
 
Группа: Members
Зарегистрирован: 09-03-2011
Сообщений: 508
UA: Firefox 28.0

Re: [CB]Toggle GIF Animation

Infocatcher
об этом я в курсе что запуститься. я говорю о том что кнопка иногда начинает показывать что она нажата на других страницах, хотя я не нажимал её. на странице вообще нет анимации.
поэтому предыдущей пользуюсь. только не в курсе как сделать чтобы по Esc работала

Отсутствует

 

№713-10-2014 02:44:54

skynet281978
Участник
 
Группа: Members
Зарегистрирован: 09-03-2011
Сообщений: 508
UA: Firefox 28.0

Re: [CB]Toggle GIF Animation

okkamas_knife
первый вариант работает, спасибо

Отсутствует

 

№822-01-2015 19:26:20

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

Re: [CB]Toggle GIF Animation

Infocatcher
У меня в [nightly], при загрузке новых страниц, GIF-анимацию стала включенной и приходится постоянно жать на кнопку. Как бы это дело поправить, чтобы анимация была выключенной?

Отсутствует

 

№923-01-2015 09:34:52

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 35.0

Re: [CB]Toggle GIF Animation

voqabuhe пишет

У меня в [nightly], при загрузке новых страниц, GIF-анимацию стала включенной и приходится постоянно жать на кнопку. Как бы это дело поправить, чтобы анимация была выключенной?

Эээ... то есть image.animation_mode уже сломали? У меня, вроде, работает.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1028-01-2015 21:51:32

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

Re: [CB]Toggle GIF Animation

Infocatcher пишет

Эээ... то есть image.animation_mode уже сломали? У меня, вроде, работает.

У меня тоже работала на старом профиле, но решил переехать на новый. :) Избавился от нескольких багов, а вот эта кнопочка почему-то поломалась. Главное что никаких новых расширений не ставил. Теперь приходится мучиться с этой анимацией, так уже от неё отвык, а тут...:(

Добавлено 28-01-2015 22:05:11

Infocatcher пишет

Упс, user_pref("image.animation_mode", "none"); помогло. Спасибо!!!

Отредактировано voqabuhe (28-01-2015 22:05:11)

Отсутствует

 

№1114-02-2020 19:37:12

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

Re: [CB]Toggle GIF Animation

Infocatcher
А до этой кнопки у вас когда руки дойдут? А то гиф анимация заела. :) Или я просто опят не вижу рабочую версию?

Отредактировано voqabuhe (14-02-2020 19:37:41)

Отсутствует

 

№1217-02-2020 20:21:40

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 56.0

Re: [CB]Toggle GIF Animation

voqabuhe
Рабочей нет, есть две проблемы с кодом: переделали доступ к nsIDOMWindowUtils (упростили до window.windowUtils.imageAnimationMode = …) и нужна поддержка мультипроцессности (и это уже сложнее).

Вот упрощенный вариант без индикации (секция «код»):

Выделить код

Код:

var code = `
    var ic = Components.interfaces.imgIContainer;
    var mode = content.windowUtils.imageAnimationMode == ic.kNormalAnimMode ? ic.kDontAnimMode : ic.kNormalAnimMode;
    (function setMode(win) {
        win.windowUtils.imageAnimationMode = mode;
        Array.prototype.forEach.call(win.frames, setMode);
    })(content);
`;
var data = "data:application/javascript," + encodeURIComponent(code);
gBrowser.selectedBrowser.messageManager.loadFrameScript(data, false);

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1317-02-2020 23:09:57

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

Re: [CB]Toggle GIF Animation

Infocatcher пишет

Вот упрощенный вариант без индикации (секция «код»):

Да главное что она останавливает анимацию останавливает без перезагрузки страницы. Спасибо.
Вот только можно сделать, чтобы изначально всё было отключено?

Отсутствует

 

№1418-02-2020 19:21:06

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 56.0

Re: [CB]Toggle GIF Animation

voqabuhe пишет

Вот только можно сделать, чтобы изначально всё было отключено?

Так ведь, вроде, по-прежнему можно сделать image.animation_mode = none.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1518-02-2020 20:08:32

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

Re: [CB]Toggle GIF Animation

Infocatcher пишет

Так ведь, вроде, по-прежнему можно сделать image.animation_mode = none.

Спасибо. Даже не вспомню уже, зачем же я её опять прописал в user.js как "normal". :dumb:
А иконку как прикрутить, чтоб переключение показывала?

Отредактировано voqabuhe (18-02-2020 20:09:04)

Отсутствует

 

№1625-02-2020 21:59:31

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 56.0

Re: [CB]Toggle GIF Animation

Toggle GIF Animation 0.3.0 (2020-02-25)
[*] Добавлена поддержка мультипроцессного режима.
[x] Исправлено переключение анимации в Firefox 63+.


Для обновления надо установить по ссылке или дополнительно к обновлению «инициализации» вручную заменить секцию «код» на

Выделить код

Код:

if(!event.target) // Button's hotkey pressed
    this.gifAnimation.toggle();

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1702-07-2022 22:23:30

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

Re: [CB]Toggle GIF Animation

del

Отредактировано voqabuhe (02-07-2022 22:25:16)

Отсутствует

 

Board footer

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