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

Общайтесь со знакомыми и друзьями в нашем сообществе в Facebook.

№125-06-2007 18:48:33

lpn_com
Участник
 
Группа: Members
Зарегистрирован: 22-06-2007
Сообщений: 5
UA: Opera 9.2

Как правильно добавить свой пункт в контекстное меню

В оверлее добавляю свой пункт к меню

Выделить код

Код:

<popup id="contentAreaContextMenu">
  <menuitem id="MyID" insertafter="context-copylink" label="MyLabel" oncommand="MyFunc();"/>
</popup>

меню добавляется, но его ВСЕГДА видно, а мне нужно ТОЛЬКО когда на ЛИНК пользователь нажал.
Причем если не по ссылке меню выскакивает, то добавленный пункт на самом верху оказывается :cry:

Отсутствует

 

№225-06-2007 19:20:24

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

Re: Как правильно добавить свой пункт в контекстное меню

Пункту меню надо добавить атрибут hidden, надо поставить обработчик onpopupshowing на contentAreaContextMenu, в котором изменять соответственно атрибут hidden, скорее всего, проверяя глобальную переменную gContextMenu, свойство onLink. Какие там поля можно посмотреть в browser.js.


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

Отсутствует

 

№325-06-2007 20:21:13

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

Re: Как правильно добавить свой пункт в контекстное меню

Насчет глобальных переменных не в курсе, но ведь можно же просто «синхронизировать» hidden добавляемого пункта с каким-нибудь стандартным (Сохранить ссылку как / Отправить ссылку ...).
contentAreaContextMenu показывается =>
document.getElementById('MyID').hidden = document.getElementById('context-sendlink').hidden;
Но вариант Антона «правильнее»...


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

Отсутствует

 

№425-06-2007 20:56:06

lpn_com
Участник
 
Группа: Members
Зарегистрирован: 22-06-2007
Сообщений: 5
UA: Opera 9.2

Re: Как правильно добавить свой пункт в контекстное меню

Не получаеться почемуто:(
xul файл, пункт успешно прячеться

Выделить код

Код:

<popup id="contentAreaContextMenu">
  <menuitem id="MyID" hidden="true" insertafter="context-copylink" label="MyLabel" oncommand="MyFunc();"/>
</popup>

js файл, но показаться не хочет, хотябы безусловно

Выделить код

Код:

document.getElementById("contentAreaContextMenu").addEventListener("onpopupshowing", todowhenpopup, true);
function todowhenpopup(event)
{
	document.getElementById("MyID").hidden = false;
	//document.getElementById("MyID").hidden = document.getElementById('context-copylink').hidden;
}

function MyFunc(){...

вместо onpopupshowing пробывал onpopupshown и popupshowing результат тот же, точнее никакого - не появляется пунктик:cry:
Может не там Event Listener добавляю?

Добавлено Пнд 25 Июн 2007 21:11:13 :
заработала:D

Выделить код

Код:

window.addEventListener("load", initOverlay, false);
function initOverlay() {
  var menu = document.getElementById("contentAreaContextMenu");
  menu.addEventListener("popupshowing", contextPopupShowing, false);
}
function contextPopupShowing()
{
	document.getElementById("MyID").hidden = !gContextMenu.onLink;
}

источник http://kb.mozillazine.org/Adding_items_to_menus

Отсутствует

 

№524-09-2009 14:06:27

Snipe
Участник
 
Группа: Members
Зарегистрирован: 18-11-2008
Сообщений: 38
UA: Firefox 3.5

Re: Как правильно добавить свой пункт в контекстное меню

А как узнать куда пользователь правой кнопкой нажал?

UPD document.popupNode

Отредактировано Snipe (24-09-2009 14:12:45)

Отсутствует

 

Board footer

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