André Laugks: open():fullscreen, Java wird gestartet, eval()

Hallo alle zusammen!

Gestern Abend habe ich mir mal etwas den Kopf zerbrochen. Ich wollte Netscape dazu veranlassen, ein neues Fenster im Fullscreen zu öffnen. fullscreen=1 kennt Netscape ja nicht, also muß ich Ihm die Höhe und Breite des Bildschirmes irgendwie mitteilen. Nach langer rumprobirerei habe ich dies zusammen gefrickelt. Naja, eigentlich nicht so richtig, es gibt so kleine Problemchen.

Das erste ist, screen.availHeight und screen.availWidth. Das neue Fenster was geöffnet wird ist immer größer als der Monitor, so ca. 20 Pixel in der Höhe und Breite ausserhalb des Monitors, in Netscape und Internet Explorer. Kann doch nicht sein, da screen.availHeight und screen.availHeight doch den Anzeigebreich des Monitors berechnen. Was mich dann aber verwundert hat, das Netscape Java startet, was ich mir nicht so recht erklären kann http://www.netcologne.de/~nc-laugksan/forum/fenster1.htm. Im IE habe ich keine Sonderbarkeiten festgestellt. Wenn ich jetzt aber screen.availHeight und screen.availWidth z.B. je minus 30 Pixel nehme, startet Java nicht http://www.netcologne.de/~nc-laugksan/forum/fenster2.htm. Das neue Fenster befindet sich auch innerhalb des Anzeigebereiches des Monitors.
Für Netscape habe ich screenX=1 und screenY=1 gestetzt, sonst ist das Fenster noch mehr ausserhalb des Monitoranzeigebereiches. Für den IE habe ich jetzt noch nichts angegeben.

Hier mal das Script:
<html>
<head>

<script language="JavaScript">
<!--

var x = screen.availWidth;
var y = screen.availHeight;

function auf()
{
nFurl = "neuesfenster.htm";

nFname = "neuesFenster";

nFparameter = "width=" + x + ",height=" + y + ",screenX=1,screenY=1";

fenster = open(nFurl, nFname, nFparameter);
}

//-->
</script>

</head>

<body>

<a href="javascript:auf()">Fenster</a>

</body>
</html>

Ich habe versucht die Parameter fürs Fenster durch eval() zusammen zu stellen z.B. eval("width=" + 200). eval() verschluckt aber hierbei das width=, und zeigt nur 200 an. Ich habe das mit einem alert getestet. Ich bin mit meinem JavaScript-Latein am Ende. Jetzt addiere ich einfach alle Parameter in einer Variable zusammen, es funktioniert also auch ohne eval().

Da frage ich mich doch woran es liegt, Denkfehler oder an den Browsern?

mfg, André

  1. Hi Andre
    Ich weiss nicht so genau ob ich dir helfen kann aber einen Versuch kann ich ja mal wagen.
    Um im Netscape ein Fenster mit maximaler Groesse zu oeffnen muss man glaube ich einfach nur das neue Fenster ohne die breiten/hoehen Angabe oeffnen.
    Beispiel: fenster = open(nFurl, nFname);
    Dann oeffnet sich ein ganz "normales" Browserfenster.
    Wenn man nun irgend eine!! (oder mehrere) Angabe macht, (keine Breiten/Hoehenangabe!) z.B.
    fenster = open(nFurl, nFname,"locationbar=no");
    Dann oeffnet sich ein neues Fenster im Vollbild ohne allen Schnickschnak (keine Locationbar, keine Menubar, Resizable=no...)
    Tschau
    Holger

    1. Hallo!

      Ich weiss nicht so genau ob ich dir helfen kann aber einen Versuch kann ich ja mal wagen.
      Um im Netscape ein Fenster mit maximaler Groesse zu oeffnen muss man glaube ich einfach nur das neue Fenster ohne die breiten/hoehen Angabe oeffnen.

      Das neue Fenster nimmt die Maße an, die das Fenster hat, welches das neue über open() öffnet. Ist das im fullscreen, wird das Neue auch im fullscreen geöffnet. Den Rest kann man sich ja zusammen reimen. Ich dachte gestern auch, "na es geht doch". Dann hatte ich aber die Fenstergröße des Netscapefensters verändert und da war ich dann etwas enttäuscht :-).

      mfg, André

  2. Hallo!

    Dass Java gestartet wird, kann ich auch nicht erklaeren, aber das hier:

    Ich habe versucht die Parameter fürs Fenster durch eval() zusammen zu stellen z.B. eval("width=" + 200). eval() verschluckt aber hierbei das width=, und zeigt nur 200 an. Ich habe das mit einem alert getestet.

    Du meinst so:
        alert(eval("width=" + 200));
    ?

    Logisch, denn damit legst Du eine Variable width an, die den Wert 200 erhaelt. Ausserdem ist das Ergebnis dieser operation 200, d.h. Du koenntest es weiter zuweisen:
        x = (width = 200);    // jetzt wird auch x 200
    Und dieses Ergebnis gibt eval() eben zurueck, also wird es von alert angezeigt.

    Ich bin mit meinem JavaScript-Latein am Ende. Jetzt addiere ich einfach alle Parameter in einer Variable zusammen, es funktioniert also auch ohne eval().

    Du wolltest doch einfach nur einen String zusammensetzen, sodass "width=200" herauskommt. Dafuer ist eval() ja auch nicht da, das kannst Du einfach so hinschreiben.

    Calocybe

  3. Hallo alle zusammen!

    So, nach dem ich noch mal meine Bücher durch geblättert habe, sind mit die Werte outerWidth und outerHeight engegen gefallen. Leider kennst die nur Netscape. Diese Werte beschreiben die Weite und Höhe des Browserfensters, also die Außenmasse. Width und Height sind woll Innenmaße, also Anzeigebereich. Netscape bietet aber auch noch innerHeight und innerWidth als Parameter an. Ich werde da nicht ganz schlau draus, was jetzt width und height ist :-(. Problem, man muß von outerWidth und outerHeightimmer noch ein paar Pixel abziehen, weil sonst immer noch Java gestartet wird in Netscape :-(.

    In der Doku bei Microsoft konnte ich entsprechende Werte nicht finden. Ok, man könnte ja mit fullscreen arbeiten. Ich wollte es aber so haben, das man auch statusbar, location usw. mit anzeigen kann, was ja fullscreen nicht zuläßt.

    mfg, André