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

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

№235106-02-2011 07:07:20

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

misha87 пишет

Там стандартные кнопки навигации ( которые уже есть в мозиле) , я попросил нестандартные

а какие тебе нужны то? Просто поменяй вид иконки и всё. Могу дать, а проще самому поставить на свой вкус и цвет, если не знаешь как ставить то помогу или я или кто первым ответит.
PS  На всякий случай... картинку конвертируй в BASE64, а то удалишь иконку... это я так на всякий случай :)

Отредактировано Indomito (06-02-2011 07:45:48)


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

Отсутствует

 

№235206-02-2011 07:19:11

misha87
Участник
 
Группа: Members
Зарегистрирован: 21-11-2010
Сообщений: 5
UA: Firefox 3.6

Re: Custom Buttons

Indomito пишет

а какие тебе нужны то? Просто поменяй вид иконки и всё. Могу дать, а проще самому поставить на свой вкус и цвет, если не знаешь как ставить то помогу или я или кто первым ответит.

да я поняла уже потом как менять. Спасибо!

Отсутствует

 

№235306-02-2011 08:20:09

misha87
Участник
 
Группа: Members
Зарегистрирован: 21-11-2010
Сообщений: 5
UA: Firefox 3.6

Re: Custom Buttons

Indomito пишет

а какие тебе нужны то? Просто поменяй вид иконки и всё. Могу дать, а проще самому поставить на свой вкус и цвет, если не знаешь как ставить то помогу или я или кто первым ответит.
PS  На всякий случай... картинку конвертируй в BASE64, а то удалишь иконку... это я так на всякий случай :)

По той ссылке поставила себе кнопки,затем выбрала редактировать и вставила кнопку какую хотела. Нет, ничего не конвертировала, просто скачала иконки формата  PNG

http://zalil.ru/30460907

Отредактировано misha87 (06-02-2011 08:20:36)

Отсутствует

 

№235406-02-2011 10:06:13

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

misha87 нажми ПКМ на кнопке - нажми Редактировать - нажми  —»base64. В этом варианте иконка сохранится с кнопкой. Если ты переместишь иконку или просто её удалишь она останется в кнопке, так проще и удобнее чем ссылаться на абсолютные пути.

Посмотри тему Готовые кнопки для Custom Buttons | Форум Mozilla Россия

Для сравнения кнопка

BrowserBack

Выделить код

Код:

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%3EBrowserBack%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0Athis.leftclick%20%3D%20function%28event%29%20%7B%0ABrowserBack%28event%29%3B%0A%7D%0A%0Athis.setAttribute%28%27onclick%27%2C%20%27gQuot%28event%2C%20this%29%27%29%3B%0A%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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

Отредактировано Indomito (07-02-2011 03:07:40)


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

Отсутствует

 

№235507-02-2011 01:16:15

misha87
Участник
 
Группа: Members
Зарегистрирован: 21-11-2010
Сообщений: 5
UA: Firefox 3.6

Re: Custom Buttons

ок смысл поняла

Отсутствует

 

№235607-02-2011 04:14:33

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

Infocatcher может перенести

Infocatcher пишет

Attributes Tooltip (для секции «код»)
Показывает всплывающую подсказку со всеми атрибутами.
Использование:
Клик средней кнопкой мыши или левой с зажатым Ctrl открывает DOM Inspector
Нажатие Escape завершает работу

Добавлено 16-01-2011 01:23:12
Attributes Inspector (для секции «код»)
Скрипт переименован, добавлена работа во всех окнах приложения, добавлена поддержка других приложений на движке gecko (тестировалось только в Thunderbird 3.1.7), улучшен внешний вид всплывающей подсказки, добавлена возможность запуска из контекста главного окна (например, через Mouse Gestures и аналоги).
Известные ограничения: динамические всплывающие подсказки не работают в Firefox 1.5 и 2.0.

из поста №2546 в топик Готовые кнопки с предварительным оформлением? Или они там есть уже, правда я не заметил их.


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

Отсутствует

 

№235707-02-2011 05:30:55

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

Re: Custom Buttons


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

Отсутствует

 

№235807-02-2011 15:17:51

3Jlou
Участник
 
Группа: Members
Зарегистрирован: 14-08-2008
Сообщений: 211
UA: Firefox 3.5

Re: Custom Buttons

Извиняюсь, что парю вас своими "хотелками", но всё же...
есть кнопка: Открытие адреса с выбором из меню(c иконками)
Собственно "хотелки" следующие:
1. Выпадающее меню повесить на правый клик (меню настроек кнопки по Shift+ПКМ или Ctrl+ПКМ);
2. Кнопка меняет иконку на соответствующую выбранному пункту меню => хотелось, чтобы не только менялась иконка, но и запоминался сам выбранный пункт меню (желательно и после перезапуска браузера) => левый клик по кнопке открывает запомненный пункт меню (при первом использовании кнопки активен 1-й пункт меню);
3. Ссылки из выпадающего меню должны открываться не во вкладках (как это реализовано в оригинальной кнопке), а в новом окне, параметры которого задаются в коде. Для примера привожу код кнопки вызова окна ICQ2Go:

Код

Выделить код

Код:

var popup = {};
    popup.launchPopout = function(url) {
        {
            s_options = "resizable=yes ,width=300 ,height=600 ,directories=no,titlebar=yes,scrollbars=no,status=no,menubar=no,toolbar=no,location=1";
        } 
        window.open(url,"_blank", s_options);
    }

popup.launchPopout('http://c.icq.com/webicq/icq/WidgetMain.html?locale=ru-ru');

4. По возможности: открытое окно должно быть одно, т.е. при выборе другого пункта из меню кнопки, ссылка открывается в том же окне, заменяя ранее открытую ссылку (на сколько понимаю, для этого кодом кнопки должно быть предусмотрено отслеживание открытых окон по ссылкам, прописанным для каждого пункта меню кнопки);
5. На среднюю кнопку повесить открытие страницы с произвольным адресом в новой активной вкладке.
Вроде бы ничего не упустил. Заранее благодарю :)

Отредактировано 3Jlou (07-02-2011 15:40:20)

Отсутствует

 

№235908-02-2011 21:55:19

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

Re: Custom Buttons

Вдруг кому-нибудь пригодится.

Увеличение количества строк в nsIPromptService.select()

Исходный вариант

Выделить код

Код:

var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

var selected = {};
if(
    Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
        .getService(Components.interfaces.nsIPromptService)
        .select(
            window,
            "Title",
            "Text",
            arr.length,
            arr,
            selected
        )
)
    alert(selected.value);

Первый способ, стилем через [url=https://developer.mozilla.org/en/nsIStyleSheetService
nsIStyleSheetService[/url]]

Выделить код

Код:

var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"]
    .getService(Components.interfaces.nsIStyleSheetService);
var cssStr = <><![CDATA[
    @-moz-document url("chrome://global/content/selectDialog.xul") {
        #list {
            height: 16em !important;
        }
    }
    ]]></>
    .toString();
var cssURI = makeURI("data:text/css," + encodeURIComponent(cssStr)); // chrome://global/content/contentAreaUtils.js
if(!sss.sheetRegistered(cssURI, sss.USER_SHEET))
    sss.loadAndRegisterSheet(cssURI, sss.USER_SHEET);

var selected = {};
if(
    Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
        .getService(Components.interfaces.nsIPromptService)
        .select(
            window,
            "Title",
            "Text",
            arr.length,
            arr,
            selected
        )
)
    alert(selected.value);

sss.unregisterSheet(cssURI, sss.USER_SHEET);

С более точным стилем:

Выделить код

Код:

var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

var title = "Title";
var desc = "Text";
const listHeight = arr.length * 1.7 + "em";
var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"]
    .getService(Components.interfaces.nsIStyleSheetService);
var cssStr = <><![CDATA[
    @-moz-document url("chrome://global/content/selectDialog.xul") {
        :root[title="%title%"] #info\.txt[value="%desc%"] + vbox > #list {
            height: %height% !important;
        }
    }
    ]]></>
    .toString()
    .replace(/%title%/g, title)
    .replace(/%desc%/g, desc)
    .replace(/%height%/g, listHeight);
var cssURI = makeURI("data:text/css," + encodeURIComponent(cssStr)); // chrome://global/content/contentAreaUtils.js
if(!sss.sheetRegistered(cssURI, sss.USER_SHEET))
    sss.loadAndRegisterSheet(cssURI, sss.USER_SHEET);

var selected = {};
if(
    Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
        .getService(Components.interfaces.nsIPromptService)
        .select(
            window,
            title,
            desc,
            arr.length,
            arr,
            selected
        )
)
    alert(selected.value);

sss.unregisterSheet(cssURI, sss.USER_SHEET);

Второй способ, ловим окно через [url=https://developer.mozilla.org/en/nsIObserverService
nsIObserverService[/url], аналог расширения userChromeJS]

Выделить код

Код:

var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];

const rowsCount = arr.length;
var oSvc = Components.classes["@mozilla.org/observer-service;1"]
    .getService(Components.interfaces.nsIObserverService);
var observer = {
    added: true,
    observe: function(subject, topic, data) {
        subject.addEventListener("load", this, false);
    },
    handleEvent: function(e) {
        var doc = e.target;
        var win = doc.defaultView;
        win.removeEventListener("load", this, false);
        if(doc.location.href != "chrome://global/content/selectDialog.xul")
            return;
        oSvc.removeObserver(this, "domwindowopened");
        this.added = false;
        var list = doc.getElementById("list");
        if(list)
            list.setAttribute("rows", rowsCount);
    }
};
oSvc.addObserver(observer, "domwindowopened", false);

var selected = {};
if(
    Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
        .getService(Components.interfaces.nsIPromptService)
        .select(
            window,
            "Title",
            "Text",
            arr.length,
            arr,
            selected
        )
)
    alert(selected.value);

observer.added && oSvc.removeObserver(observer, "domwindowopened");

Отредактировано Infocatcher (09-02-2011 03:35:04)


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

Отсутствует

 

№236008-02-2011 23:53:49

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

Infocatcher как я понял это а-ля копия твоего ЛС ко мне :)

PS понять бы как это всё сложить, хотя может быть это только мне не понятно )))


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

Отсутствует

 

№236109-02-2011 00:28:11

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

Re: Custom Buttons

А еще у добавления стиля есть побочный эффект: пока открыт наш растянутый модальный диалог, можно (из другого окна) открыть еще один select, который тоже окажется растянутым.


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

Отсутствует

 

№236209-02-2011 00:31:54

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

А блокировать ни как нельзя? Я только хотел тебе ответить с примером для самоутверждения, те "прав- не прав" и получил твой/этот ответ.

Добавлено 09-02-2011 00:35:54
Позже (подумав)....
  А у Второй способ, ловим окно через nsIObserverService, аналог расширения userChromeJS - какие "подводные камни" ?

Отредактировано Indomito (09-02-2011 00:33:03)


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

Отсутствует

 

№236309-02-2011 01:00:30

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

Re: Custom Buttons

Indomito пишет

А блокировать ни как нельзя?

Блокировать что?

Если убрать стиль, окно должно сразу же перерисоваться. Следовательно, можно или добавить стиль только в конкретное окно (а это второй способ, потому что нужно «поймать» это конкретное окно), или сделать стиль более точным – например, привязаться к заголовку окна и тексту надписи:

Выделить код

Код:

@-moz-document url("chrome://global/content/selectDialog.xul") {
    :root[title="Title"] #info\.txt[value="Text"] + vbox > #list {
        height: 16em !important;
    }
}

Разумеется, второе такое же окно с такими же надписями тоже окажется растянутым.

Indomito пишет

А у Второй способ [...] - какие "подводные камни" ?

Вроде бы, никаких.


Добавлено 09-02-2011 03:35:26
Добавил в исходное сообщение пример с уточненным стилем.

Отредактировано Infocatcher (09-02-2011 03:36:15)


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

Отсутствует

 

№236411-02-2011 02:48:36

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

Infocatcher большое спасибо за помощь мне и не только мне :)

И сразу вопросик, думаю простой... надеюсь, к тебе и  ко всем знает как решить проблему описанную ниже.

При создании/редактировании любой кнопки мы имеем 4-е секции: Код-Инициализация-Справка-Настройки кнопки. У меня вопрос именно по секции Справка, её обычно никто не использует, почему не понятно (я про тему Готовые кнопки). В неё можно прописать, ну хотя бы авторство, версию, дату создания, краткую справку по использованию, etc.
Ну и я попытался её вызвать из кнопки используя oncommand="custombuttons.uChelpButton();", а точнее custombuttons.uChelpButton(); в секции Инициализация, ну и как я предполагал меня послали -> chrome://custombuttons/content/cb2api.js ибо нужен ID кнопки и что то ещё... что я не очень понял. После отработки ПКМ и появления кон. меню функция/метод custombuttons.uChelpButton(); прекрасно сработал.

И так вопрос: Как из самой кнопки вызвать Справку именно по этой кнопке?

Конечно можно выводить информацию минуя Справку, но если есть у каждой кнопки такой метод, то как же его правильно использовать?


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

Отсутствует

 

№236511-02-2011 03:02:25

imyax
пользователь FF c 2010года
 
Группа: Members
Откуда: Сейчас здесь
Зарегистрирован: 13-04-2010
Сообщений: 209
UA: Firefox 4.0

Re: Custom Buttons

Indomito пишет

Infocatcher большое спасибо за помощь мне и не только мне И сразу вопросик, думаю простой... надеюсь, к тебе и  ко всем знает как решить проблему описанную ниже.При создании/редактировании любой кнопки мы имеем 4-е секции: Код-Инициализация-Справка-Настройки кнопки. У меня вопрос именно по секции Справка, её обычно никто не использует, почему не понятно (я про тему Готовые кнопки). В неё можно прописать, ну хотя бы авторство, версию, дату создания, краткую справку по использованию, etc.Ну и я попытался её вызвать из кнопки используя oncommand="custombuttons.uChelpButton();", а точнее custombuttons.uChelpButton(); в секции Инициализация, ну и как я предполагал меня послали -> chrome://custombuttons/content/cb2api.js ибо нужен ID кнопки и что то ещё... что я не очень понял. После отработки ПКМ и появления кон. меню функция/метод custombuttons.uChelpButton(); прекрасно сработал. И так вопрос: Как из самой кнопки вызвать Справку именно по этой кнопке?Конечно можно выводить информацию минуя Справку, но если есть у каждой кнопки такой метод, то как же его правильно использовать?

Можно попросить Anton-а , чтобы в секции "Справка" прописывалось автоматом <label>  id = <id> (как в секции "Код" - /*Соde*/ и как в секции"Инициализация" - /*Initialization Code*/ ). Тогда каждая новая кнопка будет автоматически иметь активный раздел "Справка" с названием и id кнопки.

Отсутствует

 

№236611-02-2011 03:06:36

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

imyax

Можно попросить Anton-а , чтобы в секции "Справка" прописывалось автоматом <label>  id = <id>....

да было бы не плохо. Я кстати заметил что дата создания секции Справка от 2007,  правда там вносились модификации от Anton (не датированные).

Добавлено 11-02-2011 03:09:04
PS А иначе никак не получится отловить ID? Ну экспорт, то работает, значит можно, только надо его уже считывать.


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

Отсутствует

 

№236711-02-2011 03:29:35

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

Re: Custom Buttons

Indomito пишет

Ну и я попытался её вызвать из кнопки используя oncommand="custombuttons.uChelpButton();", а точнее custombuttons.uChelpButton(); в секции Инициализация

Выделить код

Код:

custombuttons.uChelpButton = function ( oBtn ) //{{{
{
  // UPDATED: 11/8/2007 to accept oBtn as an arg.
  var Button = ( oBtn )? oBtn : document.popupNode;

Кнопка берется или из переданного аргумента, или из document.popupNode.

Выделить код

Код:

custombuttons.uChelpButton(this);
imyax пишет

Можно попросить Anton-а , чтобы в секции "Справка" прописывалось автоматом <label>  id = <id> (как в секции "Код" - /*Соde*/ и как в секции"Инициализация" - /*Initialization Code*/ ). Тогда каждая новая кнопка будет автоматически иметь активный раздел "Справка" с названием и id кнопки.

И в чем будет польза такой справки?


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

Отсутствует

 

№236811-02-2011 03:42:07

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

Infocatcher

И в чем будет польза такой справки?

согласен. В данной реализации нулевая, хотя можно воспользоваться для унификации кнопок.
И тут же вопрос, хотя ты говорил что экспортом/импортом не занимался, но... ну меня просто утомило редактировать код в самой кнопке, те как бы по простому реализовать считать содержимое секций Код и Инициализация в соответственные по названию файл типа code_<NAME>.js и init_<NAME>.js - хотя бы просто считать... точнее мне то нужно просто получить в двух переменных содержимое в нормальной кодировке (для Windows), а записать и тд я сам сделаю.


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

Отсутствует

 

№236911-02-2011 19:21:17

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

Re: Custom Buttons

Indomito пишет

как бы по простому реализовать считать содержимое секций Код и Инициализация в соответственные по названию файл типа code_<NAME>.js и init_<NAME>.js - хотя бы просто считать

this. cbCommand — здесь код, this. cbInitCode — здесь код инициализации, все в UTF-8 в unicode.

Отредактировано Anton (11-02-2011 19:43:32)


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

Отсутствует

 

№237012-02-2011 00:46:41

Osetr
Участник
 
Группа: Members
Зарегистрирован: 24-11-2010
Сообщений: 13
UA: Firefox 3.6

Re: Custom Buttons

Выделить код

Код:

function makeURL (url)
{
    var uri = makeURI (url);
    try
    {
        uri = uri. QueryInterface (Components. interfaces. nsIURL);
    }
    catch (e)
    {
        uri = null;
    }
    return uri;
}
var doc = gBrowser. contentDocument;
var cdurl = makeURL (doc. location. href);
cdurl. ref = "";
var links = doc. links;
var inlinks = [];
var curl;
for (var i = 0; i < links. length; i++)
{
    curl = makeURL (links [i]. href);
    if (curl && (curl. host == cdurl. host))
        inlinks. push (links [i]. href);
}
if (inlinks. length != 0)
{
    var ind = Math. floor (Math. random () * inlinks. length);
   loadURI (inlinks [ind], makeURL (gBrowser. contentDocument. location. href));
}

Данная кнопка открывают произвольную внутреннюю ссылку на активной странице, скажите пожалуйста можно ли каким-то образом прописать исключения, т.е. чтобы /page она не ходила (приравнивала к внешним) и некоторые другие? Заранее спасибо

Отсутствует

 

№237112-02-2011 15:52:04

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

Anton пишет

this. cbCommand — здесь код, this. cbInitCode — здесь код инициализации, все в unicode.

извиняюсь, видимо я что то не до понял или не верно сформулировал.
Помещаем this. cbCommand и this. cbInitCode в секцию Инициализация и получает кнопку в нормальном виде, но я то хотел иное сделать. Вызвать на другой, специально для этого сделанной кнопке функцию и передать ей cb-name, а получить две секции кода.

Сорри что туплю, но я не нашёл точки вызова.

PS По сути это урезанный Экспорт и Импорт в HTML

PPS Например this. label вернёт имя кнопки, но this это ссылка на текущий объект.

Отредактировано Indomito (12-02-2011 16:15:30)


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

Отсутствует

 

№237212-02-2011 19:01:10

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

Re: Custom Buttons

Osetr пишет

можно ли каким-то образом прописать исключения, т.е. чтобы /page она не ходила (приравнивала к внешним) и некоторые другие?

Можно, прописывать надо в этой строке:

Выделить код

Код:

if (curl && (curl. host == cdurl. host))

Примерно так:

Выделить код

Код:

if (curl && (curl. host == cdurl. host) && (curl. spec != "некоторая другая ссылка"))

Добавлено 12-02-2011 19:02:26

Indomito пишет

Вызвать на другой, специально для этого сделанной кнопке функцию и передать ей cb-name, а получить две секции кода.

Выделить код

Код:

var buttonName = "setBackgroundColor";

var btn = document. getElementsByAttribute ("cb-name", buttonName) [0];
alert (btn. cbCommand + "\n---\n" + btn. cbInitCode);

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

Отсутствует

 

№237312-02-2011 19:42:25

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 3.6

Re: Custom Buttons

Anton гран мерси :)


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

Отсутствует

 

№237412-02-2011 20:12:27

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

Re: Custom Buttons

Attributes Inspector 0.4.5 (2011-02-12)
Добавлена подсветка узла под курсором.
Добавлена навигация по DOM-дереву по Ctrl+Up/Ctrl+Down.
Добавлено подавление сторонних всплывающих подсказок.


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

Отсутствует

 

№237512-02-2011 22:02:29

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

Re: Custom Buttons

Attributes Inspector 0.4.5.1 (2011-02-12)
Добавлено отключение при повторном запуске из того же окна (при работе без кнопки).


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

Отсутствует

 

Board footer

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