Xpoint
   [напомнить пароль]

Добавление пункта в контекстное меню ссылок

Метки: [без меток]
2008-01-30 14:10:17 [обр] NukerF[досье]

Задача: Добавить пункт в контекстное меню, которая появлялась бы только при клике правой кнопкой по ссылке.
То есть, если кликаем правой кнопкой в свободное место - нового пункта в контекстном меню нет! А вот если на ссылке кликнули - то есть.

Вот так добавляю ссылку в контекстное меню:

<popup id="contentAreaContextMenu"?>
               <menuitem id="UnicText" label="Unic Text" oncommand="alerttext();" />
</popup>
Но она добавляется во всех контекстных меню, не только ссылочных.
Пробовал вставить перед menuitem "<menuseparator id="context-sep-open"/>" (в этом сепараторе хранятся те пункты контекстного меню, которые выводятся только для ссылок) - ничего не получилось.
Надеюсь на вашу помощь.

спустя 2 дня 2 часа [обр] Владимир Палант(434/4445)[досье]
Контекстное меню всегда одно — просто некоторые пункты меню прячутся. Вешайте свой обработчик события "popupshowing" на contentAreaContextMenu, смотрите на document.popupNode и проверяйте, является ли она ссылкой (ссылкой может быть и "родитель" этой ноды). Меняйте document.getElementById("UnicText").hidden в зависимости от того, что найдете.
спустя 2 дня 19 часов [обр] NukerF[досье]
Спасибо, я пока делаю только первые шаги в XUL, буду разбираться.
Если бы вы ещё и пример привели как проверять ноду и её родителя - было бы замечательно.
спустя 6 часов [обр] Владимир Палант(434/4445)[досье]
Что-то в этом роде:
var node = document.popupNode;
while (node)
{
  if (node instanceof HTMLAnchorElement && node.href)
  {
    // Found a link
    break;
  }

  node = node.parentNode;
}

if (node)
{
  // Do something with the link
}
Powered by POEM™ Engine Copyright © 2002-2005