Страницы: 1
Есть следующая функциональность:
Задача в том, чтобы при правом клике в выпадающем меню показывалось ещё одно контекстное меню. Если ничего не менять - показывается контекстное меню кнопки, если пробовать прикрутить другое контекстное меню через 'context', 'contextmenu' контекстное меню не появляется вообще (ни новое ни старое).
Пока вижу решение динамически наполнять старое контекстное меню в зависимости от того на кнопке его вызвали или на элементе меню, но хотелось бы менее геморойный способ использовать.
:::: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0
Отсутствует
э... вы хотябы читали мой первый пост? Проблема в прикручивании контекстного меню к другому меню. Мне не нужно вставлять пункт в какое-то существующее меню. Так что и 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
Отсутствует
Задача в том, чтобы при правом клике в выпадающем меню показывалось ещё одно контекстное меню.
<?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ентов на части порвет !!!
Отсутствует
Я уже пробовал данный подход, но вот с этим не работает почему-то :
<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
Отсутствует
Как заставить контекстное меню открыться автоматически?
Задумка была по событию 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
Отсутствует
Страницы: 1