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

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№106-06-2010 17:25:43

KML
Участник
 
Группа: Extensions
Откуда: Днепропетровск
Зарегистрирован: 01-06-2005
Сообщений: 422
UA: Firefox 3.6

Добавить в меню контекстное меню

Есть следующая функциональность:

  1. Кнопка на тулбаре

    • У кнопки есть контекстное меню (правый клик)
    • У кнопки есть выпадающее меню (левый клик)

Задача в том, чтобы при правом клике в выпадающем меню показывалось ещё одно контекстное меню. Если ничего не менять - показывается контекстное меню кнопки, если пробовать прикрутить другое контекстное меню через 'context', 'contextmenu' контекстное меню не появляется вообще (ни новое ни старое).

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


:::: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0

Отсутствует

 

№206-06-2010 19:26:17

KML
Участник
 
Группа: Extensions
Откуда: Днепропетровск
Зарегистрирован: 01-06-2005
Сообщений: 422
UA: Firefox 3.6

Re: Добавить в меню контекстное меню

Пример такого расширения?


:::: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0

Отсутствует

 

№306-06-2010 21:55:49

KML
Участник
 
Группа: Extensions
Откуда: Днепропетровск
Зарегистрирован: 01-06-2005
Сообщений: 422
UA: Firefox 3.6

Re: Добавить в меню контекстное меню

э... вы хотябы читали мой первый пост? :) Проблема в прикручивании контекстного меню к другому меню. Мне не нужно вставлять пункт в какое-то существующее меню. Так что и Video download helper и Inspect context мимо кассы.


:::: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0

Отсутствует

 

№406-06-2010 22:12:42

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

Re: Добавить в меню контекстное меню

KML пишет

Задача в том, чтобы при правом клике в выпадающем меню показывалось ещё одно контекстное меню.

Выделить код

Код:

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <popupset id="ps01">
        <menupopup id="cm01">
            <menuitem label="cm01_1"/>
            <menuitem label="cm01_2"/>
            <menuitem label="cm01_3"/>
        </menupopup>

        <menupopup id="cm02">
            <menuitem label="cm02_1"/>
            <menuitem label="cm02_2"/>
            <menuitem label="cm02_3"/>
        </menupopup>
    </popupset>

    <toolbar>
        <toolbarbutton label="a" type="menu" contextmenu="cm01">
            <menupopup contextmenu="cm02">
                <menuitem label="1"/>
                <menuitem label="2"/>
                <menuitem label="3"/>
            </menupopup>
        </toolbarbutton>
    </toolbar>

</window>

ps. Проверял в xulexplorer и extension developer XUL Editor

Отредактировано Anton (06-06-2010 22:14:14)


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

Отсутствует

 

№506-06-2010 22:33:22

KML
Участник
 
Группа: Extensions
Откуда: Днепропетровск
Зарегистрирован: 01-06-2005
Сообщений: 422
UA: Firefox 3.6

Re: Добавить в меню контекстное меню

Я уже пробовал данный подход, но вот с этим не работает почему-то :(:

Выделить код

Код:

<toolbarpalette id="BrowserToolbarPalette">
        <toolbaritem 
            class="toolbaritem-1 chromeclass-toolbar-additional"
            id="my-toolbaritem" align="center" pack="end" flex="0" context="_child"
            >
            <toolbarbutton id="my-button"
                class="toolbarbutton-1 chromeclass-toolbar-additional"
                flex="0"
                label="&buttonLabel;" hidden="false" disabled="true"
                tooltiptext="&name;" oncommand="myOverlay.myButtonClick();"
                type="menu-button">
                <menupopup id="dropdown-menu" onpopupshowing="myOverlay.buildDropDownMenu();" onpopuphiding="return myOverlay.onpopuphiding(event);"/>
            </toolbarbutton>
                <menupopup id="btn-right-click">
                    <menuitem id="my-goto-options" label="&button.context.menu.options;"
                        oncommand="myOverlay.openOptions();"/>
                    <menuitem id="my-goto-homepage" label="&button.context.menu.homepage;"
                        oncommand="myOverlay.openUrl(myPrefs.getCharPref('home.page'))"/>
                    <menuitem id="my-menu-about" label="&button.context.menu.about;" oncommand="myOverlay.openAbout();"/>
                </menupopup>
         </toolbaritem>
    </toolbarpalette>

Добавлено 06-06-2010 22:46:16
Anton, ваш пример натолкнул меня на правильное решение, спасибо. :):

<menupopup id="dropdown-menu" context="_child" onpopupshowing="myOverlay.buildDropDownMenu();" onpopuphiding="return myOverlay.onpopuphiding(event);">
    <menupopup id="cm02">
        <menuitem label="cm02_1"/>
        <menuitem label="cm02_2"/>
        <menuitem label="cm02_3"/>
    </menupopup>

</menupopup>


:::: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0

Отсутствует

 

№616-06-2010 16:08:46

KML
Участник
 
Группа: Extensions
Откуда: Днепропетровск
Зарегистрирован: 01-06-2005
Сообщений: 422
UA: Firefox 3.6

Re: Добавить в меню контекстное меню

Как заставить контекстное меню открыться автоматически?
Задумка была по событию DOMMenuItemActive послать событие right_click и контекстное меню откроется:

Выделить код

Код:

var mEvent = document.createEvent("MouseEvents");
            mEvent.initMouseEvent("click", true, true, window,
                            0, evt.screenX, evt.screenY, evt.clientX, evt.clientY, false, false, false, false, 2, null);
            evt.target.dispatchEvent(mEvent);

В итоге событе onclick срабатывает, но меню не появляется. Приходится использовать openPopup.


:::: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0

Отсутствует

 

Board footer

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