2013-11-12 2 views
0

Можно ли создать диалоговое окно с помощью XUL (в частности, в Firefox), который:Поддерживает ли XUL различные области модальности?

  • Всегда поверх всех окон, но не блокирующие взаимодействие пользователя со страницей

и/или

  • только вкладка модальным, не модальное окно

?

+0

Вам удалось заставить его работать? –

ответ

1

У вас наверняка есть неблокирующий диалог, но он будет идти в фоновом режиме при нажатии на окно. Для справки см this:

window.openDialog("chrome://membees/content/dialog.xul", 
    "","centerscreen=yes, all=no, titlebar=yes, chrome=yes, toolbar=yes, 
    dialog=no, resizable=no,modal=no",""); 

Но если вы хотите немного больше контроля вы можете создать panel вместо этого, и воспользоваться свойством уровня:

уровня

Указывает отображается ли панель поверх всех окон или просто на в верхней части окна, в котором находится панель. Если этот атрибут не установлен, уровень окна всплывающего окна зависит от Платформа. В Linux значение по умолчанию является верхним, иначе значение по умолчанию - родительское. Если панель имеет одно или несколько текстовых полей, этот атрибут не должен быть установлен, в противном случае IME или всплывающие окна на экране отображаются неправильно. Для этих причин вы должны избегать установки уровня, если это не требуется.

  • сверху

панель показана перед всеми другими нормальными окнами, в том числе других приложений.

  • родитель

Панель показана только над окном панель находится, но позади других окон над ним. Если привязано, дочернее окно поддерживает свое относительное положение к его родительскому окну.

  • плавающей

Панель плывет над окном панель находится. На Mac, панель является видимым только при активном приложении.

Чтобы создать его, вы должны добавить его к базовому элементу <popupset> в вашем накладкой, а затем открыть его с помощью:

openPopup(anchor,position,x,y,isContextMenu,attributesOverride,triggerEvent) 
Смежные вопросы