>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Как добавить элемент в контекстное меню? http://forum.mozilla-russia.org/viewtopic.php?id=13144 |
Masletso > 17-10-2006 14:21:22 |
Нужно добавить элемент в контекстное меню... И как сделать проверку - чтоб этот элемент там был только на определенном сайте... или хотя бы чтоб он был активен на нём, а на остальных сайтах, чтоб этот элемент был серенький? Заранее спасибо |
Anton > 17-10-2006 14:39:11 |
Сделать оверлей на <popup id="contentAreaContextMenu">, туда добавить нужный пункт <menuitem hidden="true"...>, по загрузке оверлея добавить на contentAreaContextMenu обработчик события popupshowing, который и будет решать, надо отображать пункт или нет. |
Masletso > 17-10-2006 21:49:26 |
ок, спасибо, понял. А обработчик событий вешать так: ? Выделить код Код:window. addEventListener ("popupshowing", todowhenpopup, true); function todowhenpopup(event) { // if () {} - показывать/не показывать элемент. } А как кстати, изменить свойство hidden? document.getElementById("test").hidden=true? |
Anton > 18-10-2006 14:08:05 |
Masletso пишет
нет.
да. чтобы показать пункт - .hidden=false И ещё, советую посмотреть реализацию nsContextMenu в chrome://browser/content/browser.js - может помочь при проверке условия. |
Masletso > 18-10-2006 16:15:18 |
ок спасибо... |
Masletso > 24-10-2006 17:59:09 |
а вот что-то не получается. Выделить код Код:<popup id="contentAreaContextMenu"> <menuseparator /> <menuitem id="myTest" label="Test " oncommand="test1();" /> <menuseparator /> </popup> Показывает его, всё ок. Выделить код Код:document.getElementById("contentAreaContextMenu").addEventListener("onpopupshown",todowhenpopup,true); function todowhenpopup(event){ if (window._content.document.location.href.indexOf("test.com")==-1) { } else { txt = grabSelect(); } } функцию выполняет, так как переменная txt заполняется выделением, но элемента моего в popup-e нету |
Anton > 24-10-2006 18:20:42 |
то есть ? |
Masletso > 24-10-2006 18:22:12 |
открыватся простой popup без моего <menuitem> |
Anton > 24-10-2006 18:38:32 |
Выделить код Код:document.getElementById("contentAreaContextMenu").addEventListener("onpopupshown",todowhenpopup,true); разве ? вместо onpopupshown afaik должно быть popupshown. ну и можно переиграть 1 и 3 аргументы addEventListener - popupshown/popupshowing; true/false |
Masletso > 24-10-2006 18:50:43 |
сорри, там вообще-то popupshown, да. Это я когда вставлял, вставлял из другой пробы и забыл убрать on (там я хотел прописать это прямо в xul файле как атриббут попапу) Добавлено Втр 24 Окт 2006 19:07:03 : |