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

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

№197602-09-2010 16:06:20

luitzen
Участник
 
Группа: Members
Зарегистрирован: 19-07-2008
Сообщений: 791
UA: Firefox 4.0

Re: Custom Buttons

okkamas_knife пишет

Вопрос: а как можно узнать общее количество закладок?

Вот как-то так, наверное:

Выделить код

Код:

with(Components.classes["@mozilla.org/browser/nav-history-service;1"]
    .getService(Components.interfaces.nsPIPlacesDatabase)
    .DBConnection.mozIStorageConnection
    .createStatement('SELECT count(fk) FROM moz_bookmarks')
    )
    {
    step();
    alert(getInt32(0));
    finalize();
    }

Отсутствует

 

№197705-09-2010 01:47:19

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.6
Веб-сайт

Re: Custom Buttons

okkamas_knife

выяснилось что та же самая проблема у кнопки проверки онлайновым доктором вебом

Решение. Вместо

Выделить код

Код:

sf. file. value = THIS. cbFileSpec;

пишем

Выделить код

Код:

new XPCNativeWrapper (sf. file). value = THIS. cbFileSpec;

хотелось бы чтото типа функции в СВ которой в качестве аргументов отправляешь путь, урл и разные параметры для отправки формы типа

скрытый текст

Выделить код

Код:

<input name="file" size="30" type="file">
<input name="user_id" value="45414" type="hidden">
<input name="user_name" value="okkamas_knife" type="hidden">
<input name="act" value="Upload" type="hidden">
<input value="Загрузить" type="submit">


и на выходе получаешь содержимое POST эапроса в переменную.

В Firefox4 что-то такое будет


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№197806-09-2010 23:04:07

Fest0
Участник
 
Группа: Members
Зарегистрирован: 24-04-2010
Сообщений: 23
UA: Firefox 3.5

Re: Custom Buttons

Скажите пожалуйста, можно ли сделать кнопочку, при клике на которую, нужное действие происходило бы через рандомное время (каждый раз разное), в пределах от 1 до 100 секунд. Действие допустим чтобы вылезало сообщение "ТЕКСТ".
Например кликнули через 23 секунды появилось это действие (сообщение)
потом кликнули действие выполнилось через 84 секунды
и так далее, рандомно, в заданных пределах.

Отсутствует

 

№197906-09-2010 23:52:57

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.6
Веб-сайт

Re: Custom Buttons

Fest0 пишет

Скажите пожалуйста, можно ли сделать кнопочку, при клике на которую, нужное действие происходило бы через рандомное время (каждый раз разное), в пределах от 1 до 100 секунд. Действие допустим чтобы вылезало сообщение "ТЕКСТ".
Например кликнули через 23 секунды появилось это действие (сообщение)
потом кликнули действие выполнилось через 84 секунды
и так далее, рандомно, в заданных пределах.

Выделить код

Код:

var maxSeconds = 10;

if (this. cbTimer && (arguments [0] != "timeout")) // если флаг таймера установлен, но время не вышло
    return;                                       // ждем
if (!this. cbTimer) // если флаг таймера не установлен
{                   // устанавливаем таймер
    var seconds = Math. round (Math. random () * maxSeconds);
    var milliSeconds = seconds * 1000;
    this. cbTimer = true;
    setTimeout (arguments. callee. bind (this), milliSeconds, "timeout");
    return;         // и выходим
}
this. cbTimer = false; // сброс флага таймера

// время вышло, делаем нужное
alert ("ТЕКСТ");

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№198007-09-2010 00:24:57

Fest0
Участник
 
Группа: Members
Зарегистрирован: 24-04-2010
Сообщений: 23
UA: Firefox 3.5

Re: Custom Buttons

Спасибо большое! Отлично работает

Отсутствует

 

№198107-09-2010 00:53:21

iDev.Pi
баг-репортёр
 
Группа: Extensions
Зарегистрирован: 31-01-2010
Сообщений: 2718
UA: Firefox 4.0

Re: Custom Buttons

Anton, тут у кнопки на [firefox]4.0 баг: у 1 кнопки не открывается окно правки.
На остальных кнопках работает - а на этой нет.
Т.к. действие "скопировать в буфер" для неё тоже не работает, то цитирую строку из файла buttonsoverlay.xul

скрытый текст
<toolbarbutton id="custombuttons-button17" label="Настройки" tooltiptext="Настройки" class="toolbarbutton-1 chromeclass-toolbar-additional" context="custombuttons-contextpopup" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIxSURBVHjapFO5iiJRFL3l1iIq7hi4NIgKIjSCiqCgDYbm/oCYGhqq/2Bi2KGZgaHgDAqtKEhj5pooiLuRuE+dh8oMMx3Ng1t16t5zXt165xZXKBTom5XlI3PHufvzX0twvV4pGo0Sf8/yUQW+P2e+wVVw75i4fD7/fJvP56PhcEgajYbUajVptVq63W60Xq9ps9mwu81mo1ar9exKdLlc8BD2er2k0+lIqVQy4mKxYBgLGBtarVaSSCTk8Xio3W6H2Sdgg1gs9t7v92m/35NAIGBku91OYrGYBTByqIEDLjTQis7nM3uLQqGg+XxOer2eXl5eqNFoUL1eZ7VQKESBQIAOhwPrBlwsaAX8JVssFm9IoigUCtEe4kc6neYQwMih9tgAGmixQSYej5PRaCSz2UwikYi63S6lUqn3h1XAyKEGDrjQQCs6nU40mUz+8PbR4r9y4MMRBLAwGAxyg8EgghOfTqdkMBhILpfT5+dnxOFwfEBULperbrf7VSqVsu5weLVaDXOQY2eQSCS45XLJhLvdjtnlcrkilUrlhgBGDjVwwIUG2qcLOByTycQcmM1mzDZMGxbaRU4mk7ENYOPDBaHf76dms1l1Op2vGKbRaMTIvV6Pjscjs/br64tZiNb5T6HtdkulUinCT+nHYxJ/8jZFgMfjMXu7SqWi32dktVoRf1as/U6nwzTPSQyHw1n+noPfb29vnMVigffsZ0EAI4caOODeNcQlk8n/+p1/CTAASVxppUgA6l4AAAAASUVORK5CYII=" cb-oncommand="openPreferences();" cb-init="// TabCandy будет срабатывать по CTRL + ~ (или CTRL + `)&#xA; window.addEventListener(&quot;keydown&quot;, function(e) {&#xA;    if(e.ctrlKey &amp;&amp; !e.altKey &amp;&amp; !e.shiftKey &amp;&amp; !e.metaKey &amp;&amp; e.keyCode == 192) // Ctrl+~&#xA;        TabView.toggle();&#xA;}, true);&#xA;&#xA;// about:config, about:support, about:memory, etc.&#xA;var menu = &lt;menupopup xmlns=&quot;http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul&quot;&#xA;              xmlns:cb=&quot;http://xsms.nm.ru/custombuttons/&quot;&#xA;              onclick=&quot;this. parentNode. handleClick (event);&quot;&#xA;        oncommand=&quot;event.stopPropagation();&quot;>&#xA;        &lt;menu label=&quot;Фолдер1&quot; image=&quot;не_работает&quot;>&#xA;            &lt;menupopup>&#xA;                &lt;menuitem label=&quot;Итем1&quot;&#xA;                      class=&quot;menuitem-iconic&quot;&#xA;                      image=&quot;адрес_картинки&quot;&#xA;                      cb:url=&quot;открываемый адрес&quot;/>&#xA;                &lt;menuitem label=&quot;Итем2&quot;&#xA;                      class=&quot;menuitem-iconic&quot;&#xA;                      image=&quot;адрес_картинки&quot;&#xA;                      cb:url=&quot;открываемый адрес&quot;/>&#xA;                &lt;menuitem label=&quot;Итем3&quot;&#xA;                      class=&quot;menuitem-iconic&quot;&#xA;                      image=&quot;адрес_картинки&quot;&#xA;                      cb:url=&quot;открываемый адрес&quot;/>&#xA;            &lt;/menupopup>&#xA;        &lt;/menu>&#xA;        &lt;menu label=&quot;Фолдер2&quot;>&#xA;            &lt;menupopup>&#xA;                &lt;menuitem label=&quot;google&quot;&#xA;                      class=&quot;menuitem-iconic&quot;&#xA;                      image=&quot;http://66.102.9.104/favicon.ico&quot;&#xA;                      cb:url=&quot;http://www.google.com&quot;/>&#xA;                &lt;menuitem label=&quot;yandex&quot;&#xA;                      class=&quot;menuitem-iconic&quot;&#xA;                      image=&quot;http://img.yandex.net/i/favicon.ico&quot;&#xA;                      cb:url=&quot;http://www.yandex.ru&quot;/>&#xA;            &lt;/menupopup>&#xA;        &lt;/menu>&#xA;        &lt;menuitem label=&quot;about:config&quot;&#xA;              cb:url=&quot;about:config&quot;/>&#xA;        &lt;menuitem label=&quot;about:support&quot;&#xA;              cb:url=&quot;about:support&quot;/>&#xA;        &lt;menuitem label=&quot;about:memory&quot;&#xA;              cb:url=&quot;about:memory&quot;/>&#xA;      &lt;/menupopup>;&#xA;this. appendChild (custombuttonsUtils. makeXML (menu));&#xA;this.removeAttribute(&quot;context&quot;);&#xA;this.onclick = function(e) {&#xA;&#x9;if(e.target != this)&#xA;&#x9;&#x9;return;&#xA;&#x9;if(e.button == 2) {&#xA;&#x9;&#x9;if(e.ctrlKey || e.shiftKey || e.altKey || e.metaKey)&#xA;&#x9;&#x9;&#x9;document.getElementById(&quot;custombuttons-contextpopup&quot;).openPopupAtScreen(e.screenX, e.screenY, true);&#xA;&#x9;&#x9;else&#xA;&#x9;&#x9;&#x9;this.lastChild.openPopupAtScreen(e.screenX, e.screenY, true);&#xA;&#x9;}&#xA;};&#xA;this. orient = &quot;horizontal&quot;;&#xA;this. handleClick = function (event)&#xA;{&#xA;    var menuitem = event. target;&#xA;    var url = menuitem. getAttributeNS (&quot;http://xsms.nm.ru/custombuttons/&quot;, &quot;url&quot;);&#xA;    if (event. button == 0)&#xA;        loadURI (url);&#xA;    else if (event. button == 1)&#xA;        gBrowser. addTab (url);&#xA;    this. open = false;&#xA;};" cb-mode="0"/>

Отредактировано iDev.Pi (07-09-2010 00:53:55)


mzfx

Отсутствует

 

№198207-09-2010 21:20:58

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

Re: Custom Buttons

Пожалуйста люди дайте-
1)простую кнопку , при нажатии на которую выполняется ввод данных(пароль и логин который сохранен браузером) в формы и вход на сайт, по лкм, как кнопка Secure Login.
2)простую кнопку которая бы работала как клавиша Enter ,по лкм.

Отсутствует

 

№198309-09-2010 20:50:20

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.6
Веб-сайт

Re: Custom Buttons

iDev.Pi

В настройках расширения надо установить флажок "Отключить инициализацию кнопок", затем открыть новое окно приложения. В новом окне кнопка станет доступной для редактирования.

bunda1

2)простую кнопку которая бы работала как клавиша Enter ,по лкм.

В раздел "Код":

скрытый текст

Выделить код

Код:

var evt = document. createEvent ("KeyEvents");
evt. initKeyEvent
(
    "keypress",
    true,
    true,
    null,
    false,  // holds Ctrl key
    false,  // holds Alt key
    false,  // holds Shift key
    false,  // holds Meta key
    evt. DOM_VK_RETURN,  // presses a special key, @see http://mxr.mozilla.org/mozilla/source/dom/public/idl/events/nsIDOMKeyEvent.idl
    0  // presses a normal key, e.g. "A".charCodeAt(0),
);

if (document. activeElement. nodeName == "browser")
    gBrowser. contentDocument. activeElement. dispatchEvent (evt);
else
    document. activeElement. dispatchEvent (evt);


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№198409-09-2010 21:00:56

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

Re: Custom Buttons

Anton is the best, кнопка Enter работает!

Отсутствует

 

№198509-09-2010 22:30:26

mmihato
Участник
 
Группа: Members
Зарегистрирован: 06-06-2010
Сообщений: 57
UA: Namoroka 3.6

Re: Custom Buttons

есть ли кнопка для того чтобы показать/скрыть статус бар?

Отсутствует

 

№198609-09-2010 22:47:51

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.6
Веб-сайт

Re: Custom Buttons

mmihato

есть ли кнопка для того чтобы показать/скрыть статус бар?

Выделить код

Код:

var sb = document. getElementById ("status-bar");
sb. collapsed = !sb. collapsed;

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№198711-09-2010 00:06:16

Deim0s
Участник
 
Группа: Members
Зарегистрирован: 09-04-2008
Сообщений: 220
UA: Firefox 3.6

Re: Custom Buttons

Anton,
Пользуюсь для Google Translate этой кнопкой. Как-то незаметно :) Google свой скрипт чуть подправили, переделал так:

скрытый текст

Выделить код

Код:

var t = document. commandDispatcher. focusedWindow. getSelection (). toString ();
if (!t)
{
    var el = document. commandDispatcher. focusedElement;
    t = el && el. value. substring (el. selectionStart, el. selectionEnd) || "";
}
var c = content.document.characterSet;
var loc = content.location.href;
getBrowser().loadOneTab(
    t
        ? "http://translate.google.ru/?text=" + t + "&hl=ru&langpair=auto|ru&tbb=1&ie=" + c
        : /^https?:\/\//i.test(loc)
            ? "http://translate.google.ru/translate?u=" + encodeURIComponent(loc) + "&hl=ru&langpair=auto|ru&tbb=1&ie=" + c
            : "http://translate.google.ru/?hl=ru",
    null, null, null, false /* load in background */, false
);

взгляните, вроде всё правильно?

Такой ещё вопрос: если в тексте встречается амперсанд, то ни кнопка, ни сам гугловский скрипт, текст после & не захватывают, возможно как то поправить?

Отсутствует

 

№198811-09-2010 15:23:11

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.6
Веб-сайт

Re: Custom Buttons

Deim0s

взгляните, вроде всё правильно?

Ничего подозрительного не вижу.

если в тексте встречается амперсанд, то ни кнопка, ни сам гугловский скрипт, текст после & не захватывают

Как это гугловский скрипт "не захватывает" ?

возможно как то поправить?

Можно записать

Выделить код

Код:

t = el && el. value. substring (el. selectionStart, el. selectionEnd) || "";
t = encodeURIComponent (t);

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№198911-09-2010 16:05:23

Deim0s
Участник
 
Группа: Members
Зарегистрирован: 09-04-2008
Сообщений: 220
UA: Firefox 3.6

Re: Custom Buttons

Anton

Как это гугловский скрипт "не захватывает" ?

Ну например: выделить мама & папа и перевести гугло-скриптом на английский, в форму перевода вставится только мама.

Можно записать...

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

Отсутствует

 

№199011-09-2010 16:24:45

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.6
Веб-сайт

Re: Custom Buttons

Deim0s

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

Я ошибся немного в предыдущем сообщении. encodeURI надо разместить в другой строке, иначе кодировка будет происходить не во всех случаях.
Надо

скрытый текст

Выделить код

Код:

var t = document. commandDispatcher. focusedWindow. getSelection (). toString ();
if (!t)
{
    var el = document. commandDispatcher. focusedElement;
    t = el && el. value. substring (el. selectionStart, el. selectionEnd) || "";
}
t = encodeURIComponent (t);
var c = content.document.characterSet;
var loc = content.location.href;
getBrowser().loadOneTab(
    t
        ? "http://translate.google.ru/?text=" + t + "&hl=ru&langpair=auto|ru&tbb=1&ie=" + c
        : /^https?:\/\//i.test(loc)
            ? "http://translate.google.ru/translate?u=" + encodeURIComponent(loc) + "&hl=ru&langpair=auto|ru&tbb=1&ie=" + c
            : "http://translate.google.ru/?hl=ru",
    null, null, null, false /* load in background */, false
);

Отредактировано Anton (11-09-2010 18:32:02)


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№199111-09-2010 16:53:46

Deim0s
Участник
 
Группа: Members
Зарегистрирован: 09-04-2008
Сообщений: 220
UA: Firefox 3.6

Re: Custom Buttons

Anton,

...иначе кодировка будет происходить не во всех случаях.

Видимо я до них не успел добраться :).
Ещё раз спасибо.

P.S.
Потестировал:
В этом варианте, перестал работать перевод страницы целиком.
В предыдущем, да, из форм ввода переводит нормально, со страниц нет.

Отредактировано Deim0s (11-09-2010 17:43:36)

Отсутствует

 

№199211-09-2010 18:00:00

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.6
Веб-сайт

Re: Custom Buttons

В этом варианте, перестал работать перевод страницы целиком.

Не знаю, проверил раздельно на двух разных страницах на en.wikipedia.org, переводят все варианты.

Добавлено 11-09-2010 18:04:18
ps.: вот страницу https://developer.mozilla.org - не переводит. Но она и в "ручном" режиме не переводится.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№199311-09-2010 18:19:58

Deim0s
Участник
 
Группа: Members
Зарегистрирован: 09-04-2008
Сообщений: 220
UA: Firefox 3.6

Re: Custom Buttons

Anton
У меня с этим вариантом, и en.wikipedia.org, и все прочие страницы целиком, не может перевести:
f185dec0b966t.jpg

ps.: вот страницу https://developer.mozilla.org - не переводит.

Ну по защищённому соединению никогда не переводили, как тут переведёшь.

Отсутствует

 

№199411-09-2010 18:33:25

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.6
Веб-сайт

Re: Custom Buttons

Deim0s пишет

У меня с этим вариантом, и en.wikipedia.org, и все прочие страницы целиком, не может перевести:

Я делаю много ошибок сегодня. Должен быть либо encodeURI, либо encodeURIComponent, но не оба вызова вместе. Код исправил


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№199511-09-2010 18:49:02

Deim0s
Участник
 
Группа: Members
Зарегистрирован: 09-04-2008
Сообщений: 220
UA: Firefox 3.6

Re: Custom Buttons

Anton,
Да, теперь, что успел попробовать, всё работает как надо.

Отсутствует

 

№199613-09-2010 01:21:54

iDev.Pi
баг-репортёр
 
Группа: Extensions
Зарегистрирован: 31-01-2010
Сообщений: 2718
UA: Firefox 4.0

Re: Custom Buttons

Anton пишет

iDev.Pi

    вдруг удастся-таки пофиксить баг с незакрываемыми табами?

Возможно, ты не удалил кнопку с первым вариантом кода. Я у себя незакрывающихся вкладок со вторым вариантом не наблюдаю.

Всё оказалось куда прозаичней: эта кнопка конфликтует с дополнением Coral IE Tab. Можно её как-то подправить чтоб была совместима с ним? Или никак и дело в самом CIET?

Добавлено 13-09-2010 01:41:05

Anton пишет

В настройках расширения надо установить флажок "Отключить инициализацию кнопок", затем открыть новое окно приложения. В новом окне кнопка станет доступной для редактирования.

Но это же чистейшей воды баг! А решение предложенное тобой - это просто метод избежания бага. На [firefox] 4.0 этот баг с тем кодом, что я постил - воспроизводится всегда. Может попробуешь выяснить - какая функция или какое сочетаний функций вызывает этот баг? Там глядишь и само собой ясно станет как этот баг фиксить...


mzfx

Отсутствует

 

№199713-09-2010 02:40:06

iDev.Pi
баг-репортёр
 
Группа: Extensions
Зарегистрирован: 31-01-2010
Сообщений: 2718
UA: Firefox 4.0

Re: Custom Buttons

okkamas_knife
вроде как кнопка не кривая, по крайней мере её писал Infocatcher и после того как баг всплыл - он уже не раз смотрел её код.
Кнопка которая подвешивает фф и кнопка которая блокирует открытие меню редактирования только у этой кнопки - вещи абсолютно разные.
Можно составить кнопку, которая будет складывать числа до бесконечности и тем самым повесит лису - это не баг, так и должно быть, а вот если кнопка работает, но меню редактирования не открывается - это уже скорее баг дополнения.
Другой вопрос - решабельная ли проблема, я мало чего понимаю в кодинге и может быть анализатор кода это и правда задача не посильная, но ведь может оказаться, что где-то в коде дополнения просто запятая какая-нибудь по недосмотру пропущена, из-за неё баг и вылезает, и никаких анализаторов не надо.
А может это вообще баг не дополнения, а какой-нибудь функции лисы: тут ещё баг всплыл:
если создать кнопку и в инициализацию поместить этот код:

скрытый текст

Выделить код

Код:

var dummy = function() {};
var progressListener = {
    onStateChange: dummy,
    onProgressChange: dummy,
    onLocationChange: function(aWebProgress, aRequest, aLocation) {
        setTimeout(function() { throw new Error(aLocation.spec); }, 0);
    },
    onStatusChange: dummy,
    onSecurityChange: dummy
};
gBrowser.addProgressListener(progressListener, Components.interfaces.nsIWebProgress.NOTIFY_LOCATION);


то почему то на таб баре сразу же появляются кнопки для прокурутки строки табов, как будто их дохрена, хотя в реальности может быть вообще 1 вкладка открыта только.
И пока до конца не ясно чей это баг и почему addProgressListener приводит к таким эффектам, если добавить слушателя сразу после события load главного окна.


mzfx

Отсутствует

 

№199814-09-2010 21:58:25

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

Re: Custom Buttons

Ах,дайте мне все таки - простую кнопку , при нажатии на которую выполняется ввод данных(пароль и логин который сохранен браузером) в формы и вход на сайт, по лкм.

Отсутствует

 

№199914-09-2010 22:13:02

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.6
Веб-сайт

Re: Custom Buttons

iDev.Pi

Но это же чистейшей воды баг!

Это особенность кнопки, она удаляет собственный атрибут "context". Я, пожалуй, добавлю восстановление атрибута по ctrl+alt+shift+right click (или что-то вроде того), но тогда кнопка "сломается" в другую сторону.

Вот исправленный код:

Код

Выделить код

Код:

openPreferences();


Инициализация

Выделить код

Код:

// TabCandy будет срабатывать по CTRL + ~ (или CTRL + `)
 window.addEventListener("keydown", function(e) {
    if(e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && e.keyCode == 192) // Ctrl+~
        TabView.toggle();
}, true);

// about:config, about:support, about:memory, etc.
var menu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
              xmlns:cb="http://xsms.nm.ru/custombuttons/"
              onclick="this. parentNode. handleClick (event);"
        oncommand="event.stopPropagation();">
        <menu label="Фолдер1" image="не_работает">
            <menupopup>
                <menuitem label="Итем1"
                      class="menuitem-iconic"
                      image="адрес_картинки"
                      cb:url="открываемый адрес"/>
                <menuitem label="Итем2"
                      class="menuitem-iconic"
                      image="адрес_картинки"
                      cb:url="открываемый адрес"/>
                <menuitem label="Итем3"
                      class="menuitem-iconic"
                      image="адрес_картинки"
                      cb:url="открываемый адрес"/>
            </menupopup>
        </menu>
        <menu label="Фолдер2">
            <menupopup>
                <menuitem label="google"
                      class="menuitem-iconic"
                      image="http://66.102.9.104/favicon.ico"
                      cb:url="http://www.google.com"/>
                <menuitem label="yandex"
                      class="menuitem-iconic"
                      image="http://img.yandex.net/i/favicon.ico"
                      cb:url="http://www.yandex.ru"/>
            </menupopup>
        </menu>
        <menuitem label="about:config"
              cb:url="about:config"/>
        <menuitem label="about:support"
              cb:url="about:support"/>
        <menuitem label="about:memory"
              cb:url="about:memory"/>
      </menupopup>;
this. appendChild (custombuttonsUtils. makeXML (menu));
//this.removeAttribute("context");
this. oncontextmenu = function (e)
{
    if ((e. button == 2) && !(e. ctrlKey || e. shiftKey || e. altKey || e. metaKey))
            e. preventDefault ();
};
this.onclick = function(e) {
    if(e.target != this)
        return;
    if(e.button == 2) {
        if(!(e.ctrlKey || e.shiftKey || e.altKey || e.metaKey))
            this.lastChild.openPopupAtScreen(e.screenX, e.screenY, true);
    }

};
this. orient = "horizontal";
this. handleClick = function (event)
{
    var menuitem = event. target;
    var url = menuitem. getAttributeNS ("http://xsms.nm.ru/custombuttons/", "url");
    if (event. button == 0)
        loadURI (url);
    else if (event. button == 1)
        gBrowser. addTab (url);
    this. open = false;
};


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№200016-09-2010 19:17:32

iDev.Pi
баг-репортёр
 
Группа: Extensions
Зарегистрирован: 31-01-2010
Сообщений: 2718
UA: Firefox 4.0

Re: Custom Buttons

Anton
спасибо за правку кода кнопки, теперь и правда работает как надо.
а не подскажешь, по поводу появляющихся на таббаре кнопок прокрутки - это не баг КБ?
и ещё, с последним найтли у меня чего-то 2 кнопки отвалились, не проходят инициализацию (висят как неактивные звёздочки), я так понимаю дополнение надо обновить, новая версия уже готова?


mzfx

Отсутствует

 

Board footer

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