fand ich this file bei Google Code mit der Funktion:Wie platziere ich ein Xul-Fenster als "Immer im Vordergrund"?
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;
}
}
Die Teile davon, die ich brauche nur:
var xulWin = window.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIWebNavigation).QueryInterface(Ci.nsIDocShellTreeItem)
.treeOwner.QueryInterface(Ci.nsIInterfaceRequestor)
.getInterface(Ci.nsIXULWindow);
xulWin.zLevel = xulWin.raisedZ;
Aber ich finde nicht, was die Ci definiert, wo ist. Irgendeine Idee, was kann es sein? Oder irgendeine andere Idee, wie man ein Fenster immer oben anordnet? (diese Lösung "nur für Windows" passt nicht zu mir).
--update
ich über die nsIWindowMediator gerade lese, die einige Methoden hat das Fenster Z, um zu handhaben. Aber es sagt, dass die Methoden von C++, nicht von Javascript verwendet werden sollten. Das heißt, der Code sollte von XPCOM-Komponenten verwendet werden (sollte ich als XPCOM-Komponente das Fenster öffnen)? Kann jemand, der es schon benutzt hat, bestätigen?
Ich lese trotzdem noch.
--update
ich den nsIWindowMediator versucht habe (mit XPCOM Komponente), aber es nichts nur tut, wenn ich den Z-Pegel gesetzt.
immer noch nach einem Weg suchen, um die Fenster aways oben zu setzen ..
--attempt mit '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>
hat nicht funktioniert.
--attempt mit 'Fräsen in Höhenschnitten':
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>
nicht funktionierte. Nither mit alwaysraised eingestellt, oder einen höheren oder niedrigeren zlevel zum test.xul hinzufügen (mit top.xul zlevel = "6")
Können Sie ein Beispiel veröffentlichen, wie openDialog verwendet wird, um ein Fenster auf diese Weise zu öffnen und einen Link zu der Ressource hinzuzufügen, wo Sie diese gefunden haben. Danke für die Beantwortung Ihrer eigenen Frage :) – jmort253
@ jmort253 sicher, da ist es. –
Ich sehe nicht, was das mit dem Öffnen des Fensters als immer oben zu tun hat. – Neil