Я нашел this file в Google код с помощью функции:Как разместить окно Xul как «Always On Top»?
function SetAlwaysOnTop() {
var chkTop = document.getElementById("itmAlwaysOnTop");
var xulWin = window.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIWebNavigation).QueryInterface(Ci.nsIDocShellTreeItem)
.treeOwner.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIXULWindow);
if(chkTop.getAttribute("checked") == "true") {
xulWin.zLevel = xulWin.raisedZ;
} else {
xulWin.zLevel = xulWin.normalZ;
}
}
В его части, что мне нужно всего лишь:
var xulWin = window.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIWebNavigation).QueryInterface(Ci.nsIDocShellTreeItem)
.treeOwner.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIXULWindow);
xulWin.zLevel = xulWin.raisedZ;
Но я не найти то, что где же Ci определена. Любая идея, что это может быть? Или любая другая идея о том, как установить окно всегда сверху? (это решение «только для окон» мне не подходит).
--update
Я читал о nsIWindowMediator, который имеет некоторые методы для обработки заказа окна Z. Но он говорит, что методы должны использоваться из C++, а не javascript. Это означает, что код должен использоваться из компонентов XPCOM (я должен как компонент XPCOM открыть окно)? Кто-нибудь, кто уже использовал это, может подтвердить?
Я все еще читаю.
--update
Я попытался nsIWindowMediator (с компонентом XPCOM), но он просто ничего не делает, когда я установил уровень Z.
Еще ищут способ положить в окно сувенирной продукции сверху ..
--attempt с 'alwaysraised':
test.xul:
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window width="400" height="300"
onload="open('top.xul','GreenfoxChannelWindow','chrome, alwaysraised');"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<label value="MAIN WINDOW"/>
</window>
top.xul :
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window width="400" height="300"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<label value="ON TOP"/>
</window>
не работал.
--attempt с 'zlevel':
test.xul:
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window width="400" height="300"
onload="open('top.xul','GreenfoxChannelWindow','chrome');"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<label value="MAIN WINDOW"/>
</window>
top.xul:
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window width="400" height="300" zlevel="6"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<label value="ON TOP"/>
</window>
не работал. Ни с селектированной настройкой, ни с добавлением верхнего или нижнего уровня z test в test.xul (с top.xul zlevel = "6")
Можете ли вы опубликовать пример того, как использовать openDialog, чтобы открыть окно таким образом, а также включить ссылку на ресурс, где вы это нашли. Спасибо, что ответили на ваш собственный вопрос :) – jmort253
@ jmort253 уверен, вот оно. –
Я не вижу, как это связано с открытием окна, как всегда сверху. – Neil