У вас наверняка есть неблокирующий диалог, но он будет идти в фоновом режиме при нажатии на окно. Для справки см 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)
Вам удалось заставить его работать? –