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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№117-10-2006 14:21:22

Masletso
Участник
 
Группа: Members
Зарегистрирован: 31-07-2006
Сообщений: 94

Как добавить элемент в контекстное меню?

Нужно добавить элемент в контекстное меню... И как сделать проверку - чтоб этот элемент там был только на определенном сайте... или хотя бы чтоб он был активен на нём, а на остальных сайтах, чтоб этот элемент был серенький? =)


Заранее спасибо

Отсутствует

 

№217-10-2006 14:39:11

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

Re: Как добавить элемент в контекстное меню?

Сделать оверлей на <popup id="contentAreaContextMenu">, туда добавить нужный пункт <menuitem hidden="true"...>, по загрузке оверлея добавить на contentAreaContextMenu обработчик события popupshowing, который и будет решать, надо отображать пункт или нет.


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

Отсутствует

 

№317-10-2006 21:49:26

Masletso
Участник
 
Группа: Members
Зарегистрирован: 31-07-2006
Сообщений: 94

Re: Как добавить элемент в контекстное меню?

ок, спасибо, понял.

А обработчик событий вешать так: ?

Выделить код

Код:

window. addEventListener ("popupshowing", todowhenpopup, true);
function todowhenpopup(event)
{
// if () {} - показывать/не показывать элемент.
}

А как кстати, изменить свойство hidden? document.getElementById("test").hidden=true?

Отсутствует

 

№418-10-2006 14:08:05

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

Re: Как добавить элемент в контекстное меню?

Masletso пишет

...обработчик событий вешать так: ?

Выделить код

Код:

window. addE...

нет.

Выделить код

Код:

document.getElementById("contentAreaContextMenu").addEventListener...

...изменить свойство hidden? document.getElementById("test").hidden=true?

да. чтобы показать пункт - .hidden=false

И ещё, советую посмотреть реализацию nsContextMenu в chrome://browser/content/browser.js - может помочь при проверке условия.


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

Отсутствует

 

№518-10-2006 16:15:18

Masletso
Участник
 
Группа: Members
Зарегистрирован: 31-07-2006
Сообщений: 94

Re: Как добавить элемент в контекстное меню?

ок =) спасибо...

Отсутствует

 

№624-10-2006 17:59:09

Masletso
Участник
 
Группа: Members
Зарегистрирован: 31-07-2006
Сообщений: 94

Re: Как добавить элемент в контекстное меню?

а вот что-то не получается.
в xul-file:

Выделить код

Код:

<popup id="contentAreaContextMenu">
			<menuseparator />
			<menuitem id="myTest" label="Test " oncommand="test1();" />
			<menuseparator />
  		</popup>

Показывает его, всё ок.
Но:
Далее (в js файле):

Выделить код

Код:

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 нету =(

Отредактировано Masletso (24-10-2006 18:00:40)

Отсутствует

 

№724-10-2006 18:20:42

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

Re: Как добавить элемент в контекстное меню?

но элемента моего в popup-e нету

то есть ?


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

Отсутствует

 

№824-10-2006 18:22:12

Masletso
Участник
 
Группа: Members
Зарегистрирован: 31-07-2006
Сообщений: 94

Re: Как добавить элемент в контекстное меню?

открыватся простой popup =) без моего  <menuitem>

Отсутствует

 

№924-10-2006 18:38:32

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

Re: Как добавить элемент в контекстное меню?

Выделить код

Код:

document.getElementById("contentAreaContextMenu").addEventListener("onpopupshown",todowhenpopup,true);

разве ? вместо onpopupshown afaik должно быть popupshown. ну и можно переиграть 1 и 3 аргументы addEventListener - popupshown/popupshowing; true/false


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

Отсутствует

 

№1024-10-2006 18:50:43

Masletso
Участник
 
Группа: Members
Зарегистрирован: 31-07-2006
Сообщений: 94

Re: Как добавить элемент в контекстное меню?

сорри, там вообще-то popupshown, да. Это я когда вставлял, вставлял из другой пробы и забыл убрать on (там я хотел прописать это прямо в xul файле как атриббут попапу)

Добавлено Втр 24 Окт 2006 19:07:03 :
кстати так работает:
<popup id="contentAreaContextMenu" onpopupshown="todowhenpopup(event)">

Отсутствует

 

Board footer

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