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

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

№101-07-2008 08:52:26

AllSeeingI
Участник
 
Группа: Members
Зарегистрирован: 12-03-2007
Сообщений: 107
UA: Firefox 2.0

2 вопроса по окну Customise Toolbar

Доброго всем утра,

1. Есть у меня в тулбаре кнопка (type=menu) с широкой (85px по ширине, 20px по высоте) картинкой. При перемещении этой кнопки в окно Customise Toolbar от кнопки остаётся только название и дроп-маркер, а картинки нет. Как это исправить?

2. Как сделать так, чтобы при старте FF в окне Customise Toolbar уже были некие toolbaritem'ы?

Заранее спасибо.

Отсутствует

 

№201-07-2008 11:49:53

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Firefox 3.0

Re: 2 вопроса по окну Customise Toolbar

чтобы в Customise Toolbar был значок у кнопки, можно сунуть в chrome.manifes примерно такого вида

Выделить код

Код:

style chrome://global/content/customizeToolbar.xul chrome://myaddon/skin/customizeToolbar.css

и внего вписать id кнопки и картинку к нему. чтобы текст отображался под иконкой, можно добавить к ней класс toolbarbutton-1

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

Выделить код

Код:

var navbar = document.getElementById("nav-bar");
				var urlbar = document.getElementById("urlbar-container");
				navbar.insertItem("mybutton", (urlbar && urlbar.parentNode == navbar ? urlbar : null), null, false);
				navbar.setAttribute("currentset", navbar.currentSet);
				document.persist(navbar.id, "currentset");

Отсутствует

 

№301-07-2008 15:52:26

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

Re: 2 вопроса по окну Customise Toolbar

2. Как сделать так, чтобы при старте FF в окне Customise Toolbar уже были некие toolbaritem'ы?

В оверлей на browser.xul добавить их как дочерние в элемент <toolbarpalette id="BrowserToolbarPalette">


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

Отсутствует

 

№401-07-2008 20:23:40

AllSeeingI
Участник
 
Группа: Members
Зарегистрирован: 12-03-2007
Сообщений: 107
UA: Firefox 2.0

Re: 2 вопроса по окну Customise Toolbar

Заработало, спасибо. Но есть ещё вопрос: я при старте браузера навешиваю на элементы всякие события и т.д., и когда добавляется новый элемент через Customise Toolbar - новые элементы не работают (потому как не инициализированы). Это как-то можно обойти? События есть какие-нибудь?

Отсутствует

 

№501-07-2008 20:29:52

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

Re: 2 вопроса по окну Customise Toolbar

dragdrop или xbl


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

Отсутствует

 

№601-07-2008 20:46:28

AllSeeingI
Участник
 
Группа: Members
Зарегистрирован: 12-03-2007
Сообщений: 107
UA: Firefox 2.0

Re: 2 вопроса по окну Customise Toolbar

А xbl тут причём?

Отсутствует

 

№701-07-2008 21:08:16

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Firefox 3.0

Re: 2 вопроса по окну Customise Toolbar

я при старте браузера навешиваю на элементы всякие события и т.д., и когда добавляется новый элемент через Customise Toolbar - новые элементы не работают (потому как не инициализированы). Это как-то можно обойти? События есть какие-нибудь?

ммм. я не совсем понял о чём ты
при старте браузера вешаются события на кнопку, которой может не быть?

Отсутствует

 

№801-07-2008 21:09:35

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

Re: 2 вопроса по окну Customise Toolbar

Когда на элемент "навешивается" биндинг, управление получает конструктор биндинга. В нём можно выполнить все необходимые действия по инициализации элемента.


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

Отсутствует

 

№902-07-2008 00:31:52

AllSeeingI
Участник
 
Группа: Members
Зарегистрирован: 12-03-2007
Сообщений: 107
UA: Firefox 2.0

Re: 2 вопроса по окну Customise Toolbar

И всё-таки простой способ есть:

Выделить код

Код:

var methodstr = BrowserToolboxCustomizeDone.toString();
if(methodstr.indexOf("myFunc") == -1)
{
  methodstr = methodstr.substring(0, methodstr.lastIndexOf("}") - 1);
  methodstr += "var wm = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator);"
  methodstr += "var mainwindow = wm.getMostRecentWindow('navigator:browser');";
  methodstr += "if(mainwindow.myFunc) mainwindow.myFunc();";
  methodstr += "}";

  eval("BrowserToolboxCustomizeDone =" + methodstr);
}

Грубо, зато работает.

при старте браузера вешаются события на кнопку, которой может не быть?

Имелось ввиду - при старте расширения.

Добавлено Wed Jul  2 00:32:39 2008 :
P.S. вышеприведённый код надо исполнять при инициализации расширения.

Отсутствует

 

№1003-07-2008 15:09:30

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

Re: 2 вопроса по окну Customise Toolbar

Грубо, зато работает.

"Хак" это называется.

Кстати, в browser.js есть такие строки:

Выделить код

Код:

var toolbox = document.getElementById("navigator-toolbox");
toolbox.customizeDone = BrowserToolboxCustomizeDone;

откуда

Выделить код

Код:

var toolbox = document. getElementById ("navigator-toolbox");
var oldCustomizeDone = toolbox. customizeDone;
toolbox. customizeDone = function myCustomizeDone (aToolboxChanged)
{
    oldCustomizeDone (aToolboxChanged);
    // ...
};

или

Выделить код

Код:

var toolbox = document. getElementById ("navigator-toolbox");
toolbox. customizeDone = (function (oldFunction)
{
    return function (aToolboxChanged)
    {
        oldFunction (aToolboxChanged);
        // ...
    };
}) (toolbox. customizeDone);

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

Отсутствует

 

№1104-07-2008 02:56:21

AllSeeingI
Участник
 
Группа: Members
Зарегистрирован: 12-03-2007
Сообщений: 107
UA: Firefox 3.0

Re: 2 вопроса по окну Customise Toolbar

Тоже логичный выход. Но, что интересно, Яндекс в Яндекс.Баре решил делать по-моему :D

Отсутствует

 

№1204-07-2008 14:00:20

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

Re: 2 вопроса по окну Customise Toolbar

Но, что интересно, Яндекс в Яндекс.Баре решил делать по-моему

От того, что разработчики Яндекс бара сделали расширение для Яндекса, потенциально ненадёжный подход не стал более надёжным.


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

Отсутствует

 

Board footer

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