>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Сustom Buttons http://forum.mozilla-russia.org/viewforum.php?id=34 >[CB]Toggle GIF Animation http://forum.mozilla-russia.org/viewtopic.php?id=57977 |
Infocatcher > 06-02-2013 00:07:17 |
Toggle GIF Animation 0.2.0 (2013-06-14) Установить: Выделить код Код: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
|
Infocatcher > 06-02-2013 00:48:54 |
Тестовая версия, будьте осторожны! |
Infocatcher > 14-06-2013 12:38:32 |
Toggle GIF Animation 0.2.0 (2013-06-14) |
skynet281978 > 12-10-2014 21:05:46 |
Infocatcher пишет
что-то она работает не совсем корректно. |
Infocatcher > 12-10-2014 22:13:01 |
skynet281978 Выделить код Код:// Components.interfaces.imgIContainer.kDontAnimMode // 1 // Components.interfaces.imgIContainer.kNormalAnimMode // 0 content.QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIDOMWindowUtils) .imageAnimationMode; выдает неверные данные. |
skynet281978 > 13-10-2014 01:43:09 |
Infocatcher |
skynet281978 > 13-10-2014 02:44:54 |
okkamas_knife |
voqabuhe > 22-01-2015 19:26:20 |
Infocatcher |
Infocatcher > 23-01-2015 09:34:52 |
voqabuhe пишет
Эээ... то есть image.animation_mode уже сломали? У меня, вроде, работает. |
voqabuhe > 28-01-2015 21:51:32 |
Infocatcher пишет
У меня тоже работала на старом профиле, но решил переехать на новый. Избавился от нескольких багов, а вот эта кнопочка почему-то поломалась. Главное что никаких новых расширений не ставил. Теперь приходится мучиться с этой анимацией, так уже от неё отвык, а тут... 28-01-2015 22:05:11 Infocatcher пишет Упс, user_pref("image.animation_mode", "none"); помогло. Спасибо!!! |
voqabuhe > 14-02-2020 19:37:12 |
Infocatcher |
Infocatcher > 17-02-2020 20:21:40 |
voqabuhe Вот упрощенный вариант без индикации (секция «код»): Выделить код Код: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); |
voqabuhe > 17-02-2020 23:09:57 |
Infocatcher пишет
Да главное что она останавливает анимацию останавливает без перезагрузки страницы. Спасибо. |
Infocatcher > 18-02-2020 19:21:06 |
voqabuhe пишет
Так ведь, вроде, по-прежнему можно сделать image.animation_mode = none. |
voqabuhe > 18-02-2020 20:08:32 |
Infocatcher пишет
Спасибо. Даже не вспомню уже, зачем же я её опять прописал в user.js как "normal". |
Infocatcher > 25-02-2020 21:59:31 |
Toggle GIF Animation 0.3.0 (2020-02-25) Для обновления надо установить по ссылке или дополнительно к обновлению «инициализации» вручную заменить секцию «код» на |
voqabuhe > 02-07-2022 22:23:30 |
del |