[XUL] Element unten links im Browser platzieren

  • Hallo,

    Habe ein kleines Tool das erscheint wenn man es aufruft *g* Ich möchte es aber an einer bestimmten Position haben...
    ich kann zwar mit top und left das Element positionieren, bzw. auch im Fenster zentrieren.

    Aber ich möchte das mein <window genau unten links über der Statusbar erscheint.

    Welches Attribut muss ich meinem window dafür zuweisen? Habe leider unter der Element Referenz nichts dazu gefunden.

    Wäre nett wenn mir da jemand mal auf die Sprünge helfen würde.

    Bedankt schonmal.

    Gruß
    LuiGee

  • Zitat von A.J.

    Mit Javascript die Position der Statusbar auslesen, dann dorthin dass Fenster mit top/left positionieren.

    Achso, ich kann also per JavaScript auf die "FF" Elemente zugreifen. Würdet ihr mir denn noch verraten wie genau sich das statusbar Element nennt?

    Ich hab leider nur Ahnung wie ich das ganze in Webseiten mache (document.getElementById('XY')) aber wie läuft das denn für die FF Elemente also in dem Fall für die StatusBar ab?

  • Hast du den Firefox mit DOM Instector installiert ?

    Extras --> DOM Inspector

    Rufe ihn mal auf, dann kannst du unter Datei --> ein Fenster inspizieren
    denn Browser selber auswählen ... dort hast du dann alle Elemente
    des Browsers selber aufgelistet.

    Der DOM Inspector ist für so etwas immer eine prima Hilfe.

    ...:AOD:...

    PS: Das Element Statusbar heisst auch "statusbar"

    HP Chromebook 15a-nb0225ng, i3N-305, 8 GB LPDDR5-4800 MHz RAM (integriert), 256GB UFS, - chromeOS 126 (Stable Channel) - Linux Debian Bookworm: Firefox Nightly, Beta und Main Release (Mozilla PPA), Android 13: Firefox Nightly und Firefox (Main Release)

    Smartphone - Firefox Main Release, Firefox Nightly, Firefox Klar (Main Release)

  • Danke für die Informationen.

    Der DOM Inspector ist mein neuer Freund *g*

    So ich versuche jetzt in dem aufgerufenen Fenster per Javascript die Position auszulesen.

    Leider bekomme ich dort keine JavaScript Fehlermeldungen mehr da es ja nicht direkt eine "Webseite" ist und die Fehlerroutine da wohl nicht zieht.

    Ich habe es so versucht:
    var sBar = document.getElementById("status-bar");
    var sBarX1 = sBar.style.left;
    var sBarX2 = sBar.offsetLeft;
    var sBarX3 = sBar.pageX;

    Leider bringt keins ein Ergebnis :(

    Oder muss ich auf einer anderen Ebenen das ganze anfassen:
    window.open("chrome://sample/content/ttw.xul", "TTW", "chrome,centerscreen,alwaysRaised");

    Hier kann man ja centerscreen setzen. Welche andere Positionierungs Möglichkeiten gibt es dort?

    Was mach ich falsch??

  • Zitat von .Ulli

    Frage Deinen neuen Freund doch mal nach dem "Objekt - Box Model". Die Doku wäre hier

    Hmmm...

    alert(document.getElementById("status-bar").boxObject.screenX);

    Dachte eigentlich hier würde dann etwas kommen. Dem ist aber nicht so :(

    Also meine "Box" im window schaut so aus:

    Das ganze wird über ein window.open() geöffnet.

    Sorry, blicke da nicht ganz durch.

  • Zitat von luigee

    ...
    Das ganze wird über ein window.open() geöffnet.

    Sorry, blicke da nicht ganz durch.

    Schau mal hier, was es für Eigenschaften von window.open gibt :

    http://de.selfhtml.org/javascript/objekte/window.htm#open

    ...:AOD:...

    HP Chromebook 15a-nb0225ng, i3N-305, 8 GB LPDDR5-4800 MHz RAM (integriert), 256GB UFS, - chromeOS 126 (Stable Channel) - Linux Debian Bookworm: Firefox Nightly, Beta und Main Release (Mozilla PPA), Android 13: Firefox Nightly und Firefox (Main Release)

    Smartphone - Firefox Main Release, Firefox Nightly, Firefox Klar (Main Release)

  • Zitat von AngelOfDarkness

    Schau mal hier, was es für Eigenschaften von window.open gibt :

    http://de.selfhtml.org/javascript/objekte/window.htm#open

    ...:AOD:...

    Danke...wie ich das Fenster positioniere weiß ich ja über screenX / Y oder top, left. Das ist auch kein Thema. Mir geht's aber darum anhand der Position der Statusbar das Fenster anschließend daran genau dort drüber zu positionieren. Da ist der Haken an der ganzen Sache.

    Ich weiß immer noch nicht wie ich die Position der Statusbar aus meinem Fenster heraus finden kann.

  • Zitat von luigee

    Ich weiß immer noch nicht wie ich die Position der Statusbar aus meinem Fenster heraus finden kann.

    Das funktioniert in meiner Übungsumgebung (Extended Statusbar) in allen Variationen

    Code
    this.loadedimages.label = document.getElementById("status-bar").boxObject.y;
    //		this.loadedimages.label = document.getElementById("status-bar").boxObject.screenY;

    und die Position wird brav angezeigt.

    Beim Rest müsste ich bei meinem momentanen Kenntnisstand raten - also lasse ich das lieber.

  • also erstmal Danke für die Mühe.

    Ich hab das Gefühl es liegt daran, dass ich ein Window öffne mit einem IFRAME drin. Aus diesem IFRAME heraus versuche ich die Abfrage zu machen.

    Ich denke daran scheitert es. Oder daran das ich absolut keinen Bezug zur Statusbar nehme. Da es ja ein neu geöffnetes Fenster ist. Hmmm...

    Aber selbst wenn ich es direkt in meine *.xul schreibe kommt nichts.

  • Also in meinem geöffneten Fenster kann ich das wohl nicht nachvollziehen. Der "opener" liegt aber in der Statusbar und dort habe ich die Informationen.

    Also muss ich jetzt nur noch schauen das ich dem window.open() die Position mitgebe.

    Danke nochmal. Das boxObject war der entscheidende Hinweis. Bedankt!!


    So nun funktioniert das ganze auch wunderbar. Besteht eine Möglichkeit das ganze an die Statusbar zu docken? Oder muss ich bei jedem resize des Browser die Position wieder neu setzen?