если достаточно только оповещения о "domwindowopened"
Почему-то описание этого топика убрали из списка Observer Notifications. Думаю, не планируют ли товарищи мозилловцы выпилить этот топик в будущих версиях?
Отсутствует
Infocatcher, спасибо за пример и за ссылки, Observer работает,
окно поймано, элемент получен.
P.S. Пока вроде не надо, но всё равно интересно:
там в документе есть бездетный iframe, а в нём свой #document.
Как на него сослаться ?
Отсутствует
Вернуть иконки сайтов в строке адреса.
http://forum.ru-board.com/topic.cgi?forum=5&topic=38041&start=2760#4
http://forum.ru-board.com/topic.cgi?forum=5&topic=38041&start=2760#7
Отсутствует
Почему-то описание этого топика убрали из списка Observer Notifications. Думаю, не планируют ли товарищи мозилловцы выпилить этот топик в будущих версиях?
Не знаю, я выборочно посмотрел старые версии этой страницы – там и раньше не было описания.
Но вот в Add-on SDK (formerly called the Jetpack SDK) оба этих топика присутствуют. И вроде даже этот код используется, только там как-то слишком много абстракций, так что сложно сказать наверняка.
P.S. Пока вроде не надо, но всё равно интересно:
там в документе есть бездетный iframe, а в нём свой #document.
Как на него сослаться ?
У узла <iframe> есть два свойства: contentWindow и contentDocument
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Отсутствует
bunda1, А через userChrome.css наверное можно? а то лишнюю кнопочку не хочется
Отсутствует
bunda1, А через userChrome.css наверное можно? а то лишнюю кнопочку не хочется
Насчёт userChrome.css не знаю, спроси у iDev.Pi
И не надо создавать лишнюю кнопочку просто положи мой код в любую CB кнопку которую ты уже используешь.
Отредактировано bunda1 (20-07-2012 19:33:32)
Отсутствует
bunda1, да, создавать не надо , просто я стараюсь не смешивать в одной кнопке чтобы не путаться потом.... хотя конечно можно комментарии добавить и название изменить
Отсутствует
bunda1, да, создавать не надо , просто я стараюсь не смешивать в одной кнопке чтобы не путаться потом.... хотя конечно можно комментарии добавить и название изменить
Хорошо, а то ты уже начал меня пугать.
Отсутствует
bunda1 , Кстати, вот как вариант для создания и редактирования скриншота № 4920 - кнопка наверное будет возможна ?
Добавлено 20-07-2012 19:47:48
Хорошо, а то ты уже начал меня пугать.
Отредактировано Крошка Ру (20-07-2012 19:47:48)
Отсутствует
есть кнопка скрытия панелей, создай панель отдельную для таких вот кнопок и держи её скрытой.
okkamas_knife, Когда-то пробовал, о подобные панели глючные были - могли пропасть .... мне кажется что удобнее такие коды что не требуют для себя кликанья можно собрать вместе в одну кнопку,или как раньше предлагал - в самом
Custom Buttons предусмотреть подобную возможность вставки безкнопочных кодов в специальный контейнер (или как бы его можно было ещё назвать) , добавив в контекстное меню возможность его вызова
Добавлено 20-07-2012 21:25:01
Наверно можно, но я не знаю как.
bunda1, и я не знаю .... там всего три действия необходимо повесить на кнопочку - Print Screen , открытие страницы snag.gy и нажатие CTRL + V
Отредактировано Крошка Ру (20-07-2012 21:26:10)
Отсутствует
bunda1, да, создавать не надо , просто я стараюсь не смешивать в одной кнопке чтобы не путаться потом.... хотя конечно можно комментарии добавить и название изменить
Но есть одно НО ! В каждом моем коде который здесь Сustom Buttons | Форум Mozilla Россия всегда есть немного кода для блокировки повторного запуска функций и обработчиков при открытии настройки панелей и если собрать все эти коды в одну кнопку получится много лишнего кода. Ведь заблокировать повторный запуск можно сразу для всей кнопки.
Добавлено 20-07-2012 21:38:48
Всё таки ты мегакрут!!! Просто, кратко и вроде все классно работает:
Да ты прав, к тому же я ещё и скромный
Обновил немного Вернуть иконки сайтов в адресной строке(Firefox 14 +)
Отредактировано bunda1 (20-07-2012 21:53:29)
Отсутствует
Но есть одно НО ! В каждом моем коде который здесь Сustom Buttons | Форум Mozilla Россия всегда есть блокировка повторного запуска функций и обработчиков при открытии настройки панелей и если собрать все эти коды в одну кнопку получится много лишнего кода. Ведь заблокировать повторный запуск можно сразу для всей кнопки.
bunda1, Значит надо знать какую часть кода каждый раз копировать не следует , а добавить однажды для всех
.... а реально если бы Custom Buttons при помещении кода в специальный контейнер автоматически избавлял бы код от лишних элементов
Отредактировано Крошка Ру (20-07-2012 22:17:32)
Отсутствует
Значит надо знать какую часть кода каждый раз копировать не следует , а добавить однажды для всех
Да это так, наверно надо будет указать это в описаниях кода. Но мне так трудно писать на русском языке.
Отсутствует
Да это так, наверно надо будет указать это в описаниях кода. Но мне так трудно писать на русском языке.
bunda1, Наверное достаточно будет один раз указать какой кусок кода выпиливать , а потом только ссылочку давать
.... а реально если бы Custom Buttons при помещении кода в специальный контейнер автоматически очищал бы код от лишних элементов, находя повторы с уже имеющимся кодом
Добавлено 20-07-2012 22:13:57
а вот нефиг всякими найтли и бетами пользоваться!
я вот ни разу не сталкивался чтоб панель пропадала.
okkamas_knife, У меня пропадала именно на релизной версии
впрчем я догадываюсь почему она могла пропадать - панель пропадает когда на ней нет ничего, так что достаточно запусть разок с неработающим СВ и панель пропала. для предотвращения просто втыкаем туда разделитель или изменяющийся интервал.
так такое происходило и вовсе без СВ-кнопок , но да , возможно что по аналогичной причине - другое расширение тоже могло глюкнуть
Отредактировано Крошка Ру (20-07-2012 22:22:18)
Отсутствует
Toggle Java(Firefox)
Во-первых, ЛКМ переключает состояние Java-плагинов ( Java(TM) Platform SE и Java Deployment Toolkit ) - не надо лезть в настройки.
Во-вторых, при каждом запуске браузера кнопка отключает эти плагины. Полезно ибо после каждого обновления Джавы плагины включаются даже если были отключены.
У кнопки правда глючное меню, поэтому чтобы открыть неглючное меню при клике ПКМ зажимайте Ctrl или Shift.
А просто Java-плагины ( Java(TM) Platform SE и Java Deployment Toolkit ) удалять не пробовал? И никаких кнопок лишних тогда не потребуется.
Отсутствует
.... а реально если бы Custom Buttons при помещении кода в специальный контейнер автоматически очищал бы код от лишних элементов, находя повторы с уже имеющимся кодом
Не реально. Но можно руками - ничего сложного.
Если надо могу помочь.
Отредактировано bunda1 (21-07-2012 01:26:03)
Отсутствует
Не реально. Но можно руками - ничего сложного.
Если надо могу помочь.
bunda1, Ясненько , Спасибо, пока нет такой необходимости
Отсутствует
bunda1 Memory Monitor в 14.0.1 не показывает цифры, только МВ.
Эта кнопка с дополнениями которые проводились тобой.
/*Initialization Code*///Memory Monitor.................. var ucjs_MemoryMonitor = { _interval: 2000, //ms _maxMemory: 1500, _prefix: "MB", //B, KB, MB, GB _dPrefix: true, interval: null, init: function () { var memoryPanel = document.createElement("statusbarpanel"); memoryPanel.id = "MemoryDisplay"; memoryPanel.setAttribute("label", this.setPrefix(this._dPrefix)); var urlbar = document.getElementById("urlbar-icons"); var go = urlbar.lastChild; urlbar.insertBefore(memoryPanel, go) this.start(); this.interval = setInterval(this.start, this._interval); }, addFigure: function (str) { var num = new String(str).replace(/,/g, ""); while (num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2"))); return num; }, restart: function () { var appStartup = Components.interfaces.nsIAppStartup; Components.classes["@mozilla.org/toolkit/app-startup;1"].getService(appStartup).quit(appStartup.eRestart | appStartup.eAttemptQuit); }, getSize: function (mem, flag) { var pre = 1; switch (this._prefix) { case 'KB': pre = 1024; break; case 'MB': pre = 1024 * 1024; break; case 'GB': pre = 1024 * 1024 * 1024; break; } if (flag) return mem * pre; else return ucjs_MemoryMonitor.addFigure(Math.round(mem / pre)); }, setPrefix: function (flag) { return (flag) ? " " + this._prefix : ""; }, start: function () { try { const Cc = Components.classes; const Ci = Components.interfaces; var mgr = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); var e = mgr.enumerateReporters(); var gMemReporters = {}; while (e.hasMoreElements()) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); gMemReporters[mr.path] = mr; } var workingSet = gMemReporters["resident"].amount; var commitmentSize = gMemReporters["private"].amount; var gfxImage = gMemReporters["gfx-surface-image"].amount; var restartMemory = ucjs_MemoryMonitor.getSize(ucjs_MemoryMonitor._maxMemory, true); var memoryPanel = document.getElementById("MemoryDisplay"); memoryPanel.setAttribute("label", ucjs_MemoryMonitor.getSize(workingSet) + ucjs_MemoryMonitor.setPrefix(ucjs_MemoryMonitor._dPrefix)); memoryPanel.style.borderBottom = "0px"; memoryPanel.style.borderTop = "0px"; memoryPanel.style.minWidth = "5.5em"; memoryPanel.style.textAlign = "right"; if (workingSet > restartMemory) { ucjs_MemoryMonitor.restart(); } } catch (e) { clearInterval(ucjs_MemoryMonitor.interval); } } } //Запускаем функцию // выходим, если функция уже выполнялась if (!document.getElementById("MemoryDisplay")) ucjs_MemoryMonitor.init();
Отредактировано skynet281978 (21-07-2012 15:56:53)
Отсутствует
bunda1 Memory Monitor в 14.0.1 не показывает цифры, только МВ.
Эта кнопка с дополнениями которые проводились тобой. Или это у меня только?
Так папробуй:
// Memory Monitor ....................... var ucjs_MemoryMonitor = { _interval: 2000, //ms _maxMemory: 1500, _prefix: "MB", //B, KB, MB, GB _dPrefix: true, interval: null, init: function () { var memoryPanel = document.createElement("statusbarpanel"); memoryPanel.id = "MemoryDisplay"; memoryPanel.setAttribute("label", this.setPrefix(this._dPrefix)); var urlbar = document.getElementById("urlbar-icons"); var go = urlbar.lastChild; urlbar.insertBefore(memoryPanel, go) this.start(); this.interval = setInterval(this.start, this._interval); }, addFigure: function (str) { var num = new String(str).replace(/,/g, ""); while (num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2"))); return num; }, restart: function () { var appStartup = Components.interfaces.nsIAppStartup; Components.classes["@mozilla.org/toolkit/app-startup;1"].getService(appStartup).quit(appStartup.eRestart | appStartup.eAttemptQuit); }, getSize: function (mem, flag) { var pre = 1; switch (this._prefix) { case 'KB': pre = 1024; break; case 'MB': pre = 1024 * 1024; break; case 'GB': pre = 1024 * 1024 * 1024; break; } if (flag) return mem * pre; else return ucjs_MemoryMonitor.addFigure(Math.round(mem / pre)); }, setPrefix: function (flag) { return (flag) ? " " + this._prefix : ""; }, start: function () { try { const Cc = Components.classes; const Ci = Components.interfaces; var mgr = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); var e = mgr.enumerateReporters(); var gMemReporters = {}; while (e.hasMoreElements()) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); gMemReporters[mr.path] = mr; } var workingSet = gMemReporters["resident"].amount; var restartMemory = ucjs_MemoryMonitor.getSize(ucjs_MemoryMonitor._maxMemory, true); var memoryPanel = document.getElementById("MemoryDisplay"); memoryPanel.setAttribute("label", ucjs_MemoryMonitor.getSize(workingSet) + ucjs_MemoryMonitor.setPrefix(ucjs_MemoryMonitor._dPrefix)); memoryPanel.style.borderBottom = "0px"; memoryPanel.style.borderTop = "0px"; memoryPanel.style.minWidth = "5.5em"; memoryPanel.style.textAlign = "right"; if (workingSet > restartMemory) { ucjs_MemoryMonitor.restart(); } } catch (e) { clearInterval(ucjs_MemoryMonitor.interval); } } } //Запускаем функцию // выходим, если функция уже выполнялась if (!document.getElementById("MemoryDisplay")) ucjs_MemoryMonitor.init();
Отсутствует
bunda1 спасибо, работает.
Отсутствует
Вот кое-как слепил бесполезную, наверное, кнопочку, но вдруг кому пригодится:
Добавляет в окно редактора Stylish кнопку для вставки своих строчек
( задаются в начале /*Initialization Code*/ ). Включается/вылючается прямо
по живым окнам. Вкл/выкл состояние через preference запоминает (но не отслеживает).
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%3EorPaste%20for%20Stylish%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/KRr//yka//8pGv//KRr//yka//8pGv//KRr//yka//8pGv//KRr//yka//8pGv//KRr//yka//8pGv//KRr//yka///jnP//45z//+Oc//8pGv//tG7//4ZA//90Lv//dTD//yka////x////8f////H////x////8f//yka//8pGv//45z//+Oc//91MP//Vxr//5RM///Bev//wXr//8F6//+8df//ejP//5JK////x////8f////H//8pGv//KRr//+Oc///jnP//KRr////////////////////////////////////H//+0bv//nVf////H////x///KRr//yka///jnP//45z//0Ey/////////8b//+Oc//+1cf//ayb//+Oc/////////+X//1Ma////x////8f//yka//8pGv//45z//+Oc//9oWf//zKr//8W2//9eGv//h0L//zwa//+HQv/////////o//9mH//MiD//x4Q8//8pGv//KRr//+Oc///jnP//0Ir//2hZ//96M///NBr//14a//+bVP///+D/////////////Uxr//+Oc///jnP//KRr//yka///jnP//45z//86I//88Gv//vHX////g////////////////////4P//6KL//yka///jnP//45z//yka//8pGv//45z//+Oc//9EGv//1o/////////////////////g///TjP//h0L//yka///Vj///45z//+Oc//8pGv//KRr//yka//8pGv//PBr////l////////0Ir//1Ma//8tGv//KRr//0Aa///jnP//45z//+Oc///jnP//KRr//yka////x////8f//zwa/////f///////5pS//9PGv//h0L//yka//88Gv//Wxr//8B7///jnP//45z//yka//8pGv///8f////H//8pGv//3pb/////////////3pb//9CK///qo////////7Nr//9kHP//45z//+Oc//8pGv//KRr////H////x///ayb//0ca///elv///+D/////////////////4eHh//+aUv//ZBz//+Oc///jnP//KRr//yka////x////8f////H//9kHP//KRr//0ca//9mH///ZBz//08a//8wGv//KRr/8MyG///jnP//45z//yka//8pGv///8f////H////x////8f////H///pov//2ZD//9CK//8pGv//45z//+Oc///jnP//45z//+Oc//8pGv//KRr//yka//8pGv//KRr//yka//8pGv//KRr//yka//8pGv//KRr//yka//8pGv//KRr//yka//8pGv//KRr/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20items%20%3D%20%5B%0A%0A//%20%22%u041D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043F%u0443%u043D%u043A%u0442%u0430%20%u043C%u0435%u043D%u044E%22%2C%0A//%20%22%u0422%u0435%u043A%u0441%u0442%2C%20%u043A%u043E%u0442%u043E%u0440%u044B%u0439%20%u0431%u0443%u0434%u0435%u0442%20%u0432%u0441%u0442%u0430%u0432%u043B%u0435%u043D%22%2C%0A%0A%22%21important%3B%22%2C%0A%22%21important%3B%22%2C%0A%0A%22display%3A%20none%20%21important%3B%22%2C%0A%22display%3A%20none%20%21important%3B%22%2C%0A%0A%22width%3A%20%22%2C%0A%22width%3A%20%22%2C%0A%0A%22height%3A%20%22%2C%0A%22height%3A%20%22%2C%0A%0A%22font-weight%3A%20%22%2C%0A%22font-weight%3A%20%22%2C%0A%0A%5D%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Avar%20prefs%20%3D%20Components.classes%5B%22@mozilla.org/preferences-service%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIPrefService%29%0A%20%20%20%20%20%20%20%20%20%20%20%20.getBranch%28%22custombutton.orPasteForStylish.%22%29%3B%0Atry%20%20%20%20%20%20%7B%20var%20pref%20%3D%20prefs.getBoolPref%28%22off%22%29%3B%20%7D%0Acatch%28e%29%20%7B%20prefs.setBoolPref%28%22off%22%2C%20false%29%3B%20%7D%3B%0Athis.off%20%3D%20prefs.getBoolPref%28%22off%22%29%3B%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Aconst%20%20kXULNS%20%3D%20%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%3B%0A%0Afunction%20createButton%28%29%20%7B%0A%0Avar%20%20button%20%3D%20document.createElementNS%28kXULNS%2C%20%22button%22%29%3B%0A%20%20%20%20%20button.setAttribute%28%22id%22%2C%20%22or-paste-by-cb%22%29%3B%0A%20%20%20%20%20button.setAttribute%28%22type%22%2C%20%22menu%22%29%3B%0A%20%20%20%20%20button.setAttribute%28%22label%22%2C%20%22%u0438%u043B%u0438%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%22%29%3B%0A%0Avar%20%20menupopup%20%3D%20document.createElementNS%28kXULNS%2C%20%22menupopup%22%29%3B%0A%20%20%20%20%20button.appendChild%28menupopup%29%3B%0A%0Afor%20%28var%20i%20%3D%200%3B%20i%20%3C%20items.length%3B%20i%20+%3D%202%29%20%7B%0A%20%20%20%20%20%0A%20%20var%20%20menuitem%20%3D%20document.createElementNS%28kXULNS%2C%20%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20menuitem.setAttribute%28%22label%22%2C%20items%5Bi%5D%29%3B%0A%20%20var%20%20commandString%20%3D%20%22insertCodeAtCaret%28%27%22%20+%20items%5Bi+1%5D%20+%20%22%27%29%22%3B%0A%20%20%20%20%20%20%20menuitem.setAttribute%28%22oncommand%22%2C%20commandString%29%3B%0A%20%20%20%20%20%20%20menupopup.appendChild%28menuitem%29%3B%20%7D%0A%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20return%20button%3B%20%7D%0A%20%20%20%20%20%20%20%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Avar%20oSvc%20%3D%20Components.classes%5B%22@mozilla.org/observer-service%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIObserverService%29%3B%0A%0Avar%20observer%20%3D%20%7B%20//%20thanks%20for%20Infocatcher%0A%0Aobserve%3A%20function%28subject%2C%20topic%2C%20data%29%20%7B%0A%20%20%20%20%20%20%20%20%20subject.addEventListener%28%22load%22%2C%20this%2C%20false%29%3B%20%7D%2C%0A%20%20%20%20%20%20%0AhandleEvent%3A%20function%28e%29%20%7B%0A%20%20%20%20var%20doc%20%3D%20e.target%3B%0A%20%20%20%20var%20win%20%3D%20doc.defaultView%3B%0A%20%20%20%20%20%20%20%20win.removeEventListener%28%22load%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20if%28doc.location.href%20%21%3D%20%22chrome%3A//stylish/content/edit.xul%22%29%20return%3B%0A%0A%20%20%20%20var%20hbox%20%3D%20doc.getElementById%28%22editor-tools%22%29%3B%0A%20%20%20%20var%20btn%20%3D%20hbox.firstChild%3B%0A%20%20%20%20%20%20%20%0A%20%20%20%20hbox.insertBefore%28createButton%28%29%2C%20btn.nextElementSibling%29%3B%20%7D%7D%3B%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Avar%20ww%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/window-watcher%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIWindowWatcher%29%3B%0A%0Avar%20activeWin%20%3D%20null%3B%20%20%20%20%20%20%20%20%20%0Athis.onmouseover%20%3D%20function%28%29%20%7B%20activeWin%20%3D%20ww.activeWindow%3B%20%7D%0A%0A//--------------------------------------------------------------------%0A%0Athis.run%20%3D%20function%28%29%20%7B%20%0A%0A%20%20if%20%28%21this.off%29%20%20%7B%20oSvc.addObserver%28observer%2C%20%22domwindowopened%22%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20prefs.setBoolPref%28%22off%22%2C%20false%29%3B%20%7D%0A%20%20if%20%28this.off%20%29%20%20%7B%20oSvc.removeObserver%28observer%2C%20%22domwindowopened%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20prefs.setBoolPref%28%22off%22%2C%20true%29%3B%20%7D%0A%20%20%20%0A%20%20var%20enumerator%20%3D%20ww.getWindowEnumerator%28%29%3B%0A%20%20var%20win%20%3D%20true%3B%0A%20%20while%20%28win%29%20%7B%20win%20%3D%20enumerator.getNext%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21win%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20doc%20%3D%20win.document%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28doc.location.href%20%21%3D%20%22chrome%3A//stylish/content/edit.xul%22%29%20continue%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21this.off%29%20%7B%20var%20hbox%20%3D%20doc.getElementById%28%22editor-tools%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20btn%20%3D%20hbox.firstChild%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20hbox.insertBefore%28createButton%28%29%2C%20btn.nextElementSibling%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28win%20%3D%3D%20activeWin%29%20win.focus%28%29%3B%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28this.off%29%20%7B%20var%20b%20%3D%20doc.getElementById%28%22or-paste-by-cb%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28b%29%20%7B%20b.parentElement.removeChild%28b%29%3B%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28win%20%3D%3D%20activeWin%29%20win.focus%28%29%3B%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%7D%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Aif%20%28this.off%29%20%7B%0Athis.image%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/9nZ2f/Z2dn/2dnZ/6Ojo//Hx8f/srKy/62trf+tra3/o6Oj/+vr6//r6+v/6+vr/+vr6//r6+v/o6Oj/6Ojo//Z2dn/2dnZ/62trf+jo6P/uLi4/8zMzP/MzMz/zMzM/8nJyf+tra3/uLi4/+vr6//r6+v/6+vr/6Ojo/+jo6P/2dnZ/9nZ2f+jo6P/////////////////////////////////6+vr/8fHx/+9vb3/6+vr/+vr6/+jo6P/o6Oj/9nZ2f/Z2dn/ra2t///////r6+v/2dnZ/8fHx/+oqKj/2dnZ///////19fX/o6Oj/+vr6//r6+v/o6Oj/6Ojo//Z2dn/2dnZ/729vf/e3t7/4+Pj/6Ojo/+1tbX/o6Oj/7W1tf//////9/f3/6ampv+Hh4f/gICA/6Ojo/+jo6P/2dnZ/9nZ2f/R0dH/vb29/62trf+jo6P/o6Oj/729vf/19fX///////////+jo6P/2dnZ/9nZ2f+jo6P/o6Oj/9nZ2f/Z2dn/0dHR/6Ojo//Jycn/9fX1//////////////////X19f/b29v/o6Oj/9nZ2f/Z2dn/o6Oj/6Ojo//Z2dn/2dnZ/6Ojo//U1NT/////////////////9fX1/9HR0f+1tbX/o6Oj/9TU1P/Z2dn/2dnZ/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/9fX1///////R0dH/o6Oj/6Ojo/+jo6P/o6Oj/9nZ2f/Z2dn/2dnZ/9nZ2f+jo6P/o6Oj/+vr6//r6+v/o6Oj////////////urq6/6Ojo/+1tbX/o6Oj/6Ojo/+jo6P/zMzM/9nZ2f/Z2dn/o6Oj/6Ojo//r6+v/6+vr/6Ojo//W1tb////////////W1tb/0dHR/9vb2///////xMTE/6ampv/Z2dn/2dnZ/6Ojo/+jo6P/6+vr/+vr6/+oqKj/o6Oj/9bW1v/19fX/////////////////4ODg/7q6uv+mpqb/2dnZ/9nZ2f+jo6P/o6Oj/+vr6//r6+v/6+vr/6ampv+jo6P/o6Oj/6ampv+mpqb/o6Oj/6Ojo/+jo6P/xMTE/9nZ2f/Z2dn/o6Oj/6Ojo//r6+v/6+vr/+vr6//r6+v/6+vr/9vb2//U1NT/0dHR/6Ojo//Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%22%3B%0A%0Areturn%3B%20%7D%0A%0Athis.run%28%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bthis.off%20%3D%20%21this.off%3B%0A%0Aif%20%20%28this.off%29%20this.image%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/9nZ2f/Z2dn/2dnZ/6Ojo//Hx8f/srKy/62trf+tra3/o6Oj/+vr6//r6+v/6+vr/+vr6//r6+v/o6Oj/6Ojo//Z2dn/2dnZ/62trf+jo6P/uLi4/8zMzP/MzMz/zMzM/8nJyf+tra3/uLi4/+vr6//r6+v/6+vr/6Ojo/+jo6P/2dnZ/9nZ2f+jo6P/////////////////////////////////6+vr/8fHx/+9vb3/6+vr/+vr6/+jo6P/o6Oj/9nZ2f/Z2dn/ra2t///////r6+v/2dnZ/8fHx/+oqKj/2dnZ///////19fX/o6Oj/+vr6//r6+v/o6Oj/6Ojo//Z2dn/2dnZ/729vf/e3t7/4+Pj/6Ojo/+1tbX/o6Oj/7W1tf//////9/f3/6ampv+Hh4f/gICA/6Ojo/+jo6P/2dnZ/9nZ2f/R0dH/vb29/62trf+jo6P/o6Oj/729vf/19fX///////////+jo6P/2dnZ/9nZ2f+jo6P/o6Oj/9nZ2f/Z2dn/0dHR/6Ojo//Jycn/9fX1//////////////////X19f/b29v/o6Oj/9nZ2f/Z2dn/o6Oj/6Ojo//Z2dn/2dnZ/6Ojo//U1NT/////////////////9fX1/9HR0f+1tbX/o6Oj/9TU1P/Z2dn/2dnZ/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/9fX1///////R0dH/o6Oj/6Ojo/+jo6P/o6Oj/9nZ2f/Z2dn/2dnZ/9nZ2f+jo6P/o6Oj/+vr6//r6+v/o6Oj////////////urq6/6Ojo/+1tbX/o6Oj/6Ojo/+jo6P/zMzM/9nZ2f/Z2dn/o6Oj/6Ojo//r6+v/6+vr/6Ojo//W1tb////////////W1tb/0dHR/9vb2///////xMTE/6ampv/Z2dn/2dnZ/6Ojo/+jo6P/6+vr/+vr6/+oqKj/o6Oj/9bW1v/19fX/////////////////4ODg/7q6uv+mpqb/2dnZ/9nZ2f+jo6P/o6Oj/+vr6//r6+v/6+vr/6ampv+jo6P/o6Oj/6ampv+mpqb/o6Oj/6Ojo/+jo6P/xMTE/9nZ2f/Z2dn/o6Oj/6Ojo//r6+v/6+vr/+vr6//r6+v/6+vr/9vb2//U1NT/0dHR/6Ojo//Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%22%3B%0A%0Aif%20%28%21this.off%29%20this.image%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/KRr//yka//8pGv//KRr//yka//8pGv//KRr//yka//8pGv//KRr//yka//8pGv//KRr//yka//8pGv//KRr//yka///jnP//45z//+Oc//8pGv//tG7//4ZA//90Lv//dTD//yka////x////8f////H////x////8f//yka//8pGv//45z//+Oc//91MP//Vxr//5RM///Bev//wXr//8F6//+8df//ejP//5JK////x////8f////H//8pGv//KRr//+Oc///jnP//KRr////////////////////////////////////H//+0bv//nVf////H////x///KRr//yka///jnP//45z//0Ey/////////8b//+Oc//+1cf//ayb//+Oc/////////+X//1Ma////x////8f//yka//8pGv//45z//+Oc//9oWf//zKr//8W2//9eGv//h0L//zwa//+HQv/////////o//9mH//MiD//x4Q8//8pGv//KRr//+Oc///jnP//0Ir//2hZ//96M///NBr//14a//+bVP///+D/////////////Uxr//+Oc///jnP//KRr//yka///jnP//45z//86I//88Gv//vHX////g////////////////////4P//6KL//yka///jnP//45z//yka//8pGv//45z//+Oc//9EGv//1o/////////////////////g///TjP//h0L//yka///Vj///45z//+Oc//8pGv//KRr//yka//8pGv//PBr////l////////0Ir//1Ma//8tGv//KRr//0Aa///jnP//45z//+Oc///jnP//KRr//yka////x////8f//zwa/////f///////5pS//9PGv//h0L//yka//88Gv//Wxr//8B7///jnP//45z//yka//8pGv///8f////H//8pGv//3pb/////////////3pb//9CK///qo////////7Nr//9kHP//45z//+Oc//8pGv//KRr////H////x///ayb//0ca///elv///+D/////////////////4eHh//+aUv//ZBz//+Oc///jnP//KRr//yka////x////8f////H//9kHP//KRr//0ca//9mH///ZBz//08a//8wGv//KRr/8MyG///jnP//45z//yka//8pGv///8f////H////x////8f////H///pov//2ZD//9CK//8pGv//45z//+Oc///jnP//45z//+Oc//8pGv//KRr//yka//8pGv//KRr//yka//8pGv//KRr//yka//8pGv//KRr//yka//8pGv//KRr//yka//8pGv//KRr/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%22%3B%0A%0Athis.run%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
Отсутствует