Открыть диалоговое окно JQuery/Bootstrap из контекстного меню

У меня есть расширение Google Chrome, которое открывает диалоговое окно Twitter Bootstrap (используя JQuery 1.7.x, но не JQueryUI) при щелчке пункта контекстного меню, и я пытался сделать то же самое в версии Firefox (используя надстройку SDK 1.6), безрезультатно.

Я могу перехватить нажатие кнопки «ОК» в моем lib/main.js, используя context-menu, но я не могу получить сообщение для сценария контента (см. https://stackoverflow.com/a/8493844/954442), который содержит функцию, которая создает DOM диалога и отображает его. Я также не могу создать диалоговое окно из своего дополнительного сценария, потому что там нет DOM (и попытка загрузить JQuery в него через @mozilla.org/moz/jssubscript-loader;1 завершается с ошибкой с сообщением «окно не определено»)

Я искал повсюду примеры, но не нашел многого, что помогло бы. У кого-нибудь есть пример context-menu элемента, открывающего диалоговое окно?

(Что каковы преимущества/недостатки использования Add-on SDK для разработки моего расширения Firefox? это самое близкое, что я нашел к своей проблеме. У меня сложилось впечатление, что автор в конце концов нашел ответ, но не обновлял вопрос сказать, что это было.)

(Примечание. Я не готов рассматривать XUL и очень не хочу возвращаться к JQueryUI)


person Andrew Regan    schedule 21.04.2012    source источник
comment
Позвольте мне понять: вы хотите добавить элемент контекста, и при нажатии на элемент отображать панель/диалоговое окно, созданное DOM, на текущей странице. Это правильно? Обратите внимание, что у вас нет DOM в коде надстройки, НО у вас есть DOM в скрипте содержимого, прикрепленном к странице.   -  person ZER0    schedule 21.04.2012
comment
Короче говоря, да. Я получаю щелчки меню уже в сценарии надстройки, но мне нужно иметь возможность вызывать сценарий содержимого, чтобы вставить мой диалог в DOM содержимого.   -  person Andrew Regan    schedule 21.04.2012


Ответы (1)


Итак, я считаю, что вы хотите сделать что-то вроде этого:

https://builder.addons.mozilla.org/addon/1049738/latest/

По сути, вы добавляете свойство contentScriptFile в контекстное меню Item. Сценарий контента не использует переменную js на странице, но может получить доступ к DOM. Таким образом, вы можете добавить свою панель и отображать ее при нажатии на элемент контекстного меню.

Обратите внимание, что вы можете передавать contentScriptFile несколько файлов с помощью массива, поэтому вы также можете загружать jQuery таким образом.

Надеюсь, поможет.

person ZER0    schedule 21.04.2012