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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№440120-07-2012 05:16:12

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 15.0

Re: Custom Buttons

Infocatcher пишет

если достаточно только оповещения о "domwindowopened"

Почему-то описание этого топика убрали из списка Observer Notifications. Думаю, не планируют ли товарищи мозилловцы выпилить этот топик в будущих версиях?

Отсутствует

 

№440220-07-2012 11:02:56

SendAbuse
Участник
 
Группа: Members
Зарегистрирован: 08-03-2012
Сообщений: 113
UA: Firefox 11.0

Re: Custom Buttons

Infocatcher, спасибо за пример и за ссылки, Observer работает,
окно поймано, элемент получен. :)

P.S. Пока вроде не надо, но всё равно интересно:
там в документе есть бездетный iframe, а в нём свой #document.
Как на него сослаться ?

Отсутствует

 

№440320-07-2012 11:09:44

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

Re: Custom Buttons

bunda1 пишет

Вернуть иконки сайтов в строке адреса.

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

Отсутствует

 

№440420-07-2012 17:32:41

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

Re: Custom Buttons

hydrolizer пишет

Почему-то описание этого топика убрали из списка Observer Notifications. Думаю, не планируют ли товарищи мозилловцы выпилить этот топик в будущих версиях?

Не знаю, я выборочно посмотрел старые версии этой страницы – там и раньше не было описания.
Но вот в Add-on SDK (formerly called the Jetpack SDK) оба этих топика присутствуют. И вроде даже этот код используется, только там как-то слишком много абстракций, так что сложно сказать наверняка. :)

SendAbuse пишет

P.S. Пока вроде не надо, но всё равно интересно:
там в документе есть бездетный iframe, а в нём свой #document.
Как на него сослаться ?

У узла <iframe> есть два свойства: contentWindow и contentDocument


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

Отсутствует

 

№440520-07-2012 19:16:40

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

Отсутствует

 

№440620-07-2012 19:22:08

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8716
UA: Firefox 17.0

Re: Custom Buttons

bunda1, А через userChrome.css наверное можно? а то лишнюю кнопочку не хочется :angel:

Отсутствует

 

№440720-07-2012 19:33:05

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

Re: Custom Buttons

Крошка Ру пишет

bunda1, А через userChrome.css наверное можно? а то лишнюю кнопочку не хочется :angel:

Насчёт userChrome.css не знаю, спроси у iDev.Pi
И не надо создавать лишнюю кнопочку просто положи мой код в любую CB кнопку которую ты уже используешь.

Отредактировано bunda1 (20-07-2012 19:33:32)

Отсутствует

 

№440820-07-2012 19:36:48

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8716
UA: Firefox 17.0

Re: Custom Buttons

bunda1, да, создавать не надо , просто я стараюсь не смешивать в одной кнопке чтобы не путаться потом.... хотя конечно можно комментарии добавить и название изменить  :)

Отсутствует

 

№440920-07-2012 19:38:51

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

Re: Custom Buttons

Крошка Ру пишет

bunda1, да, создавать не надо , просто я стараюсь не смешивать в одной кнопке чтобы не путаться потом.... хотя конечно можно комментарии добавить и название изменить  :)

Хорошо, а то ты уже начал меня пугать.

Отсутствует

 

№441020-07-2012 19:46:54

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8716
UA: Firefox 17.0

Re: Custom Buttons

bunda1 , Кстати, вот как вариант для создания и редактирования скриншота № 4920 - кнопка наверное будет возможна ? :angel:

Добавлено 20-07-2012 19:47:48

Хорошо, а то ты уже начал меня пугать.

:blush:

Отредактировано Крошка Ру (20-07-2012 19:47:48)

Отсутствует

 

№441120-07-2012 20:12:06

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

Re: Custom Buttons

Крошка Ру пишет

bunda1 , Кстати, вот как вариант для создания и редактирования скриншота № 4920 - кнопка наверное будет возможна ? :angel:

Наверно можно, но я не знаю как.  :(

Отсутствует

 

№441220-07-2012 21:20:06

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8716
UA: Firefox 17.0

Re: Custom Buttons

есть кнопка скрытия панелей, создай панель отдельную для таких вот кнопок и держи её скрытой.

okkamas_knife, Когда-то пробовал, о подобные панели глючные были - могли пропасть :dumb: .... мне кажется что удобнее такие коды что не требуют для себя кликанья  можно собрать вместе в одну кнопку,или как раньше предлагал - в самом
Custom Buttons предусмотреть подобную возможность вставки безкнопочных кодов в специальный контейнер (или как бы его можно было ещё назвать) , добавив в контекстное меню возможность его вызова :angel:

Добавлено 20-07-2012 21:25:01

Наверно можно, но я не знаю как.  :(

bunda1, и я не знаю :rolleyes: :whistle: .... там всего три действия необходимо повесить на кнопочку -  Print Screen , открытие страницы snag.gy и нажатие CTRL + V :sick:

Отредактировано Крошка Ру (20-07-2012 21:26:10)

Отсутствует

 

№441320-07-2012 21:25:44

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 969
UA: Firefox 14.0

Re: Custom Buttons

bunda1 пишет

Вернуть иконки сайтов в адресной строке(Firefox 14 +) :D

Всё таки ты мегакрут!!! Просто, кратко и вроде все классно работает :rock:
Спасибище.

Отсутствует

 

№441420-07-2012 21:33:51

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

Re: Custom Buttons

Крошка Ру пишет

bunda1, да, создавать не надо , просто я стараюсь не смешивать в одной кнопке чтобы не путаться потом.... хотя конечно можно комментарии добавить и название изменить  :)

Но есть одно НО ! В каждом моем коде который здесь Сustom Buttons | Форум Mozilla Россия всегда есть немного кода для блокировки повторного запуска функций и обработчиков при открытии настройки панелей и если собрать все эти коды в одну кнопку получится много лишнего кода. Ведь заблокировать повторный запуск можно сразу для всей кнопки.

Добавлено 20-07-2012 21:38:48

Inko7 пишет

Всё таки ты мегакрут!!! Просто, кратко и вроде все классно работает:

Да ты прав, к тому же я ещё и скромный :)
Обновил немного Вернуть иконки сайтов в адресной строке(Firefox 14 +)

Отредактировано bunda1 (20-07-2012 21:53:29)

Отсутствует

 

№441520-07-2012 21:55:08

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8716
UA: Firefox 17.0

Re: Custom Buttons

bunda1 пишет

Но есть одно НО ! В каждом моем коде который здесь Сustom Buttons | Форум Mozilla Россия всегда есть блокировка повторного запуска функций и обработчиков при открытии настройки панелей и если собрать все эти коды в одну кнопку получится много лишнего кода. Ведь заблокировать повторный запуск можно сразу для всей кнопки.

bunda1, Значит надо знать какую часть кода каждый раз  копировать не следует , а добавить однажды для всех :)

.... а реально если бы Custom Buttons при помещении кода в специальный контейнер автоматически избавлял бы код от лишних элементов :)

Отредактировано Крошка Ру (20-07-2012 22:17:32)

Отсутствует

 

№441620-07-2012 22:03:32

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

Re: Custom Buttons

Крошка Ру пишет

Значит надо знать какую часть кода каждый раз  копировать не следует , а добавить однажды для всех :)

Да это так, наверно надо будет указать это в описаниях кода. Но мне так трудно писать на русском языке.

Отсутствует

 

№441720-07-2012 22:09:03

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8716
UA: Firefox 17.0

Re: Custom Buttons

Да это так, наверно надо будет указать это в описаниях кода. Но мне так трудно писать на русском языке.

bunda1, Наверное достаточно будет один раз указать какой кусок кода выпиливать , а потом только ссылочку давать :)


.... а реально если бы Custom Buttons при помещении кода в специальный контейнер автоматически очищал бы код от лишних элементов, находя повторы с уже имеющимся кодом  :)

Добавлено 20-07-2012 22:13:57

а вот нефиг всякими найтли и бетами пользоваться!
я вот ни разу не сталкивался чтоб панель пропадала.

okkamas_knife, У меня пропадала именно на релизной версии :rolleyes:

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

так такое происходило и вовсе без СВ-кнопок :cool: , но да , возможно что по аналогичной причине - другое расширение тоже могло глюкнуть :dumb:

Отредактировано Крошка Ру (20-07-2012 22:22:18)

Отсутствует

 

№441820-07-2012 23:50:20

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

Re: Custom Buttons

humnmind пишет

Toggle Java(Firefox)
Во-первых, ЛКМ переключает состояние Java-плагинов ( Java(TM) Platform SE и Java Deployment Toolkit ) - не надо лезть в настройки.
Во-вторых, при каждом запуске браузера кнопка отключает эти плагины. Полезно ибо после каждого обновления Джавы плагины включаются даже если были отключены.
У кнопки правда глючное меню, поэтому чтобы открыть неглючное меню при клике ПКМ зажимайте Ctrl или Shift.

А просто Java-плагины ( Java(TM) Platform SE и Java Deployment Toolkit ) удалять не пробовал? И никаких кнопок лишних тогда не потребуется.:D

Отсутствует

 

№441921-07-2012 00:24:03

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

Re: Custom Buttons

Крошка Ру пишет

.... а реально если бы Custom Buttons при помещении кода в специальный контейнер автоматически очищал бы код от лишних элементов, находя повторы с уже имеющимся кодом

Не реально. Но можно руками - ничего сложного.
Если надо могу помочь.

Отредактировано bunda1 (21-07-2012 01:26:03)

Отсутствует

 

№442021-07-2012 03:17:07

SendAbuse
Участник
 
Группа: Members
Зарегистрирован: 08-03-2012
Сообщений: 113
UA: Firefox 11.0

Re: Custom Buttons

Infocatcher пишет

У узла <iframe> есть два свойства: contentWindow и contentDocument

Да, точно, так и есть !  Благодарю за науку, буду знать.

Отсутствует

 

№442121-07-2012 03:27:49

Крошка Ру
Участник
 
Группа: Extensions
Зарегистрирован: 19-10-2008
Сообщений: 8716
UA: Firefox 17.0

Re: Custom Buttons

Не реально. Но можно руками - ничего сложного.
Если надо могу помочь.

bunda1, Ясненько :) , Спасибо, пока нет такой необходимости :angel:

Отсутствует

 

№442221-07-2012 15:56:01

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

Re: Custom Buttons

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)

Отсутствует

 

№442321-07-2012 16:14:19

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

Re: Custom Buttons

skynet281978 пишет

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();

Отсутствует

 

№442421-07-2012 16:40:55

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

Re: Custom Buttons

bunda1 спасибо, работает.

Отсутствует

 

№442521-07-2012 19:48:22

SendAbuse
Участник
 
Группа: Members
Зарегистрирован: 08-03-2012
Сообщений: 113
UA: Firefox 11.0

Re: Custom Buttons

Вот кое-как слепил бесполезную, наверное, кнопочку, но вдруг кому пригодится:
Добавляет в окно редактора Stylish кнопку для вставки своих строчек
( задаются в начале /*Initialization Code*/ ). Включается/вылючается прямо
по живым окнам. Вкл/выкл состояние через preference запоминает (но не отслеживает).
vZXRkdw

Выделить код

Код:

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

Отсутствует

 

Board footer

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