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

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

Разработка » Помогите с menuitem checked » 06-06-2010 22:35:03

Ненене) все оказалось намного проще ;) у меня 2 элемента с таким ID ;)))))

Тему можно закрывать.

Разработка » Помогите с menuitem checked » 06-06-2010 22:06:45

А не, соврал, в DomInspector атрибут есть, однако галки все равно нет :(

Разработка » Помогите с menuitem checked » 06-06-2010 19:39:53

Приветствую всех


Вот наткнулся на странную проблему:
Имею меню что-то типа:


Выделить код

Код:

<menupopup id="fvd_single_tools_popup_menu" onpopupshowing="return fvd_single.tools_menu_showing(event)">
                    <menuitem id="fvd_single_js_enabled" type="checkbox" autocheck="false" label="&txt.tools_popup.javascript.title;" oncommand="alert(1)" />
                    <menuitem label="&txt.tools_popup.check_ip.title;" oncommand="" />
                    <menuitem label="&txt.tools_popup.speed_test.title;" oncommand="" />
                    <menuitem label="&txt.tools_popup.whois.title;" oncommand="" />
                </menupopup>

и код к нему

[code]
    this.tools_menu_showing = function(event)
    {
        try
        {
            var val = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch).getBoolPref('javascript.enabled');
            var it = document.getElementById('fvd_single_js_enabled');
     

Разработка » Как вызвать деструктор у xbl ? » 17-05-2009 00:53:41

Просто подумалось что медленно будет работать.  Вот примерно что получилось:

Функция, рекурсивно обрабатывающая стандартные деструкторы:

[code]    function xbl_destructor_bugfix(event)
    {
        if (event.originalTarget.nodeName == 'opwidget')
        {
            // ok, we needs call desructor recursion
            // but have some problems... $)

            var binded_to = document.defaultView.getComputedStyle(event.originalTarget, null).getPropertyValue('-moz-binding');
            var get_url = binded_to.match(/url\((\'|\")?(.*?)\1?\)/mi);
            if (get_url != null)
            {
                // current binding founded
                var bind_params = get_url[2].match(/([^\#]+)#(.*)/mi);
                if (bind_params != null)
                {
                    var bind_to_url = bind_params[1];
                    var bind_to_section =  bind_params[2];

                    var ajax = Components.classes['@mozilla.org/xmlextras/xmlhttprequest;1'].createInstance(Components.interfaces.nsIXMLHttpRequest);
                    ajax.open('GET', bind_to_url, false);
                    ajax.send(null);
                   
                    if ((ajax.responseXML != null) && (ajax.respons

Разработка » Как вызвать деструктор у xbl ? » 16-05-2009 15:45:28

Мысль пришла по поводу слежения - если попробовать слушать DOMNodeRemoved и в нем фильтровать свои элементы с xbl, дергать у них свой метод destroy или что-то подобное ? Такое вообще реально ? :)

Разработка » Как вызвать деструктор у xbl ? » 16-05-2009 01:11:20

Так, гуглом установлено что это баг - https://bugzilla.mozilla.org/show_bug.cgi?id=230086 :( очень древний.

Можно попробовать вынести деструктор в метод и вызывать самостоятельно, но это очень неудобно и не всегда уследишь + как быть с расширяемыми XBL ? (т.е. один - расширение второго) ?

Разработка » Как вызвать деструктор у xbl ? » 16-05-2009 00:33:51

Приветствую всех читающих. :D

Дебажил свой экстеншин и заметил в нем аномальное поведение xbl.
По мануалу - при установке связки должен вызваться constructor, а при удалении - destructor.
На практике - конструктор срабатывает, деструктор нет. Если связку не убирать с элемента, то при закрытии браузера деструктор срабатывает. Если связаный элемент удалить (типа removeChild), то связка с него не отваливается и деструктор не вызывается (т.е. элемент пропадает, браузер закрываешь, деструктор не вызывается).

Собственно хотел поинтересоваться - это баг ? Можно как-то сделать чтобы деструктор вызывался автоматический ?

Разработка » Какой способ менее кривой для создания хранилища ? » 11-04-2009 19:45:56

Crazy-EyE пишет

Не знаете, есть ли возможность зарегистрировать компонент в любой момент из любой папки и пользоваться ?

Такой возможности нет, и она обычно не нужна. Можно подгружать JS-скрипты через mozIJSSubScriptLoader.

А зачем вам это нужно?

Хочу забиндить XBL на кнопочку, и чтобы она сразу подняла глобальное хранилище для других копий браузера (если их вдруг начнут запускать) или приципилась уже к существующему хранилищу. Вся "прелесть" в том чтобы можно было подключать XBL подтянутые из сети (изображаю "плагины" для расширений). Плагины могут быть разные и сразу не угадаешь какие будут... поэтому одинаковые хранилища для всех не подойдут. Вот ищу как это сделать без XPCOM или возможность как это сделать налету.

Разработка » Какой способ менее кривой для создания хранилища ? » 11-04-2009 16:26:07

Forest пишет

Может имеет смысл покопать в сторону расширений, которые ставятся в папку приложения (и доступны во всех профилях)?

Это несколько не то. Т.е. расширения то доступны, но данные в них не общие.

pi.v.vitaly пишет

Попробуйте посмотреть расширение Clippings.

Посмотрел, автор сделал, как предлагает Crazy-EyE.

Crazy-EyE
Посмотрел\почитал. Примерно это меня и интересует, однако не совсем подходит в моем случае. Как я понимаю XPCOM компоненты регистрируются в момент установки расширения, подхватываясь браузером из папки /components? Не знаете, есть ли возможность зарегистрировать компонент в любой момент из любой папки и пользоваться ?

Разработка » Какой способ менее кривой для создания хранилища ? » 10-04-2009 18:58:48

lemax пишет

Если данных мало, и они не накапливаются, то nsIPrefBranch (что то вроде реестра виндоус, только для всех операционных систем). Записи в этом "реестре" можно увидеть по адресу about:config

Иначе: nsILocalFile. Просто записывать в общий фаил.

Данных не очень много, но реализовывать свою БД на файлах желания не много. Поднимать sqlite тоже не хочется, т.к. данные быстро устаревают и нуждаются в динамичном обновлении ;(

Forest пишет

Что за данные-то хоть?

Да вообще теоретический вопрос. Сейчас данные - урлы \ ключи-хеши \ информация о страницах по урлам \ статистика всякая. Ну и нелогично когда статистика в одном тулбаре одна, а в соседнем окне другая ;(

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

Разработка » Какой способ менее кривой для создания хранилища ? » 07-04-2009 20:31:47

Доброй ночи, уважаемые форумчане.

Вот задался вопросом, как менее криво можно изобразить хранилище данных в тулбаре? У меня тулбар получает данные с сервера, а поскольку пользователь может запусть 2 Firefox - тулбара станет 2... .а копия данных должна быть одна. Сейчас у меня каждый тулбар имеет свое хранилище и после получения данных тулбар посылает уведомление обсерверам остальных тулбаров (в других процессах фф), передавая им данные. При изменении \ удалении данных тулбар сообщает всем остальным своим копиям что сделать надо ;) вообщем такой велосипед получился и он мне не нравится. Скажите, есть ли способы сделать что-то общее одно?

Разработка » Как изменить background в меню ? » 05-09-2008 16:47:00

Не получилось у меня сделать это на description (text-decoration: underline), поэтому зафигачил html ссылки в xul - на них почему-то все нормально выставляется ;)

Всем откликнувшимся спасибо! ;)

Разработка » Как изменить background в меню ? » 05-09-2008 15:32:58

в userChrome.css

Вот это как раз не то. У меня вообще предположения что с правами какие-то проблемы или типа того? Может FF не дает перекрывать какие-то стандартные конструкции в css.

Добавлено Fri Sep  5 15:33:21 2008 :
Имелось ввиду из своего экстеншина.

Разработка » Как изменить background в меню ? » 05-09-2008 13:13:51

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

да, действительно работает ;) правда не на все.

При наведении на элемент сверху появляется какой-то прямоугольник ;) (причем не во всех темах) Убрать никак не получилось.
Поставить text-decoration: underline на дочернем description тоже не получается (хотя и -moz-appearance: none !important; и евенты разрешал ... (хотя курсор перекрылся легко)).

Ни в одном расширении ничего такого не сделано разве?

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

Это единственный способ или есть какие-то еще ? :)

Разработка » Как изменить background в меню ? » 04-09-2008 15:20:08

Приветствую всех форумчан-девелоперов ;)

А не знает ли кто как изменить background-color \ background-image для элементов меню из экстеншина FF? Я слышал в теме такое можно сделать. А можно ли для своего меню в экстеншине сделать такое без тем ?

попробовал так:

#my_menu > menuitem
{
background-color: #000 !important;
cursor: pointer !important;
}

ничего не меняется %( т.е. color применить можно, а фон и все на hover - нет :(

Может знаете почему не работает ?

Добавлено Thu Sep  4 15:27:04 2008 :
Так же не удается ничего сделать с menuseparator - он вообще ни на какие стили не реагирует :(

Подскажите кто-нибудь пожалуйста где копать? В темах уже глядел. .. :(

Разработка » Как проиграть видео в отдельном окне? » 04-09-2008 14:01:01

А флэшовый не умеет?

Нет, он только swf подхватывает :|

Еще можно попробовать альтернативы флэшплагина - gnash.

Тут ставка делается на публичные средства воспроизведения. Т.е. в виндах ФФ сам наверное поставит flash, а в пингвине люди сами его ставят ручками. Далее через flash -> flashplayer -> flv

Разработка » Как проиграть видео в отдельном окне? » 03-09-2008 16:35:41

Forest пишет

Если это вопрос выбора формата - стоит обратить внимание на формат видео, которое поддерживается (или только собирается - не помню точно) Лисом - когда-то про такое писали, но конкретики не помню.

К сожалению выбора формата передо мной не стоит - форматы уже есть, надо просто на чем-то играть. Дефолтные установленые плагины для ФФ скорее всего будут и в пингвине, но для flv просто нет плагина :( зато есть куча флеш плееров для проигрывания видео. Наверное придется через плеер все это запускать.

Разработка » Как проиграть видео в отдельном окне? » 03-09-2008 13:48:52

Нашел пару статей:
http://www.alistapart.com/articles/flashsatay
http://www.alistapart.com/articles/byebyeembed

Тут все замечательно, только не ясно как флеш видео flv проиграть. Т.е. обязательно тащить с собой плеер или можно как-то без него ?

Разработка » Как проиграть видео в отдельном окне? » 03-09-2008 12:34:00

Приветствую всех собравшихся еще раз! ;-)

А не подскажет ли кто, как проиграть видео из URL форматов flv, asf или wmv ? Под Windows это можно сделать медиаплеером, но как оно будет работать в Linux я не знаю (а хотелось бы). Можно ли заставить Firefox показать видео встроенными средствами ?

Так пологаю надо смотреть в сторону тега embed ? Если так, то будет ли браузер автоматический предлагать загрузить нужные плагины для embed ?

Разработка » Как в меню добавить свою кнопку ? » 03-09-2008 10:59:30

нужно добавить атрибут allowevents="true"

А ;) а я его к menuitem сначала добавил, поэтому наверное не работало. Действительно атрибут на image помог - все заработало. Так же сами заработали css - menuitem > image:hover.

Спасибо большое ;)

Разработка » Как в меню добавить свою кнопку ? » 02-09-2008 14:55:19

через originalTarget поймать реально нажатый элемент

К сожалению originalTarget все время указывает на menuitem. Может какие-нибудь атрибуты надо в menuitem ?

:hover на manuitem'е тоже должен рабтать

Ну на нем он может и работает (не проверял), а на image в нем - нет :(

Может еще какие варианты есть ?

Разработка » Как в меню добавить свою кнопку ? » 01-09-2008 23:41:16

Приветствую всех форумчан.

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

Выделить код

Код:

<popup>
	<menuitem align="start">
		<description flex="2">Ля ля ля</description>
		<spacer flex="1" />
		<image />
	</menuitem>
</popup>

Иконка отображается, многострочности тоже добился, однако поймать клик с иконки не получается, т.к. никакие эвенты не проходят. Так же не работают :hover на иконке и курсор никак не перекрывается :(

Собственно как поймать клик с image ?

Разработка » Как убрать не мой тултип? » 17-12-2007 12:43:31

т.е. тултип надо отдельно создать и таким образом показывать, а с обычным tooltiptext ничего сделать нельзя ?

Разработка » Как убрать не мой тултип? » 17-12-2007 01:05:33

Приветствую всех собравшихся )

Проблема у меня такая - генерирую меню по хмл динамический и вешаю на кнопку (type="menu-button"). Все бы ничего, но у элементов не содержащих tooltiptext показывается предыдущий всплывавший тултип. Если ничего не всплывало - показывается маленький прямоугольничек. Атрибуты tooltiptext или tooltip я не добавлял, по DOM Inspector их тоже нет, но тултип всплывает. Пытался заглушить его создавая пустой тултип и вешая на tooltip - всплывают вдвоем ;) Подскажите кто-нибудь как справиться с тултипом ?

Разработка » Есть ли в firefox 1-2 возможность показать popup в любое время ? » 18-10-2007 03:35:12

Доброе утро! ;) А не подскажет ли кто, как можно выкинуть попуп меню в любое время в нужном
месте ?

showPopup - интересное глюкало - иногда показыватеся вовсе не где надо ;( (иногда например ниже пикселов на 20)
атрибут popup на элементе меня бы устроил, но он показывает меню, когда я щелкаю на элемент...  (мне надо под textbox показывать). При подсовывании popup на ходу и убирании при потере фокуса контрол при потере фокуса больше не активируется ;-) (может что делал не так, или руки кривые). .. .

Хочется чтобы это все работало в ФФ 1.5 - 2 №)

Board footer

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