Robbin: künstliche Fenster (writeln)

Ich erzeuge mit dem nachstehenden Code ein Fenster,
das einen Zwischenschritt zur eigentlichen Link-Adresse darstellt.
Es funktioniert alles sehr schön, nur die Address-Zeile bekomme ich einfach nicht weg :(
Woran kann es liegen ?
Ach ja, die Parameter sind die Zieladdresse und ein counter.

VIELEN DANK

function Link(x,y) {
    myWindow=window.open("", "Fenstername", "top = " + (parent.document.getElementsByTagName('frameset')[0].offsetHeight / 2 - 200) + ",left = " + (parent.document.getElementsByTagName('frameset')[0].offsetWidth / 2 - 200) + ",width = 400,height = 400,location=no");
    myWindow.document.writeln("<HTML><HEAD>");
    myWindow.document.writeln("<LINK href = 'css.css' type = text/css rel = stylesheet>");
    myWindow.document.writeln("<SCRIPT type = 'text/Javascript'>");
    myWindow.document.writeln("<!--");
    myWindow.document.writeln("function Warnung(){");
    myWindow.document.writeln("window.open('" + x + "','')");
    myWindow.document.writeln("window.close();");
    myWindow.document.writeln("}");
    myWindow.document.writeln("//-->");
    myWindow.document.writeln("</SCRIP"+"T>");
    myWindow.document.writeln("</HEAD><BODY>");
    myWindow.document.writeln("<Table width = '100%' height = '100%'><TR><TH>");
    myWindow.document.writeln("<Table bgcolor = 'white' border = '" + Rahmen + "'><TR><TH>");
    myWindow.document.writeln("Achtung !!!<P>Das nachfolgende Fenster<BR>ist kein Bestandteil von");

Hoehe =120;
    Breite=300;

myWindow.document.writeln("<BR><BR><IMG src='/testbild.gif' width='"+Breite+"' height='"+Hoehe+"'><BR><BR>");
    myWindow.document.writeln("<FORM><input type = 'button' value = 'Link in neuem Fenster &ouml;ffnen' onclick = 'javascript:Warnung()'></FORM>");
    myWindow.document.writeln("</TH></TR></TABLE>");
    myWindow.document.writeln("</TH></TR></TABLE>");
    myWindow.document.writeln("</BODY></HTML>");
    myWindow.document.close();
}

  1. Hi,

    Ich erzeuge mit dem nachstehenden Code ein Fenster,
    das einen Zwischenschritt zur eigentlichen Link-Adresse darstellt.

    Und wozu diese Zeit und Nerven raubende Barriere?

    Es funktioniert alles sehr schön, nur die Address-Zeile bekomme ich einfach nicht weg :(
    Woran kann es liegen ?

    Daran, dass moderne Browser deren Ausblendung bei Popups nicht mehr unterstuetzen - damit dem Nutzer kein x.example.com fuer ein u.example.com vorgemacht werden kann.

    MfG ChrisB

    --
    "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."
  2. Hallo,

    Ich erzeuge mit dem nachstehenden Code ein Fenster, das einen Zwischenschritt zur eigentlichen Link-Adresse darstellt.

    warum? Warum nicht ohne Schnörkel direkt die Zielseite verlinken?

    Es funktioniert alles sehr schön, ...

    Bei dir und deiner Testumgebung? Pass auf, dass du diese Beobachtung nicht vorschnell verallgemeinerst.

    nur die Address-Zeile bekomme ich einfach nicht weg :(

    Und das ist gut so. Als Web-Nutzer möchte ich schließlich wissen, "wo" ich mich befinde. Und weil in den letzten Jahren viele böse Buben versucht haben, arglose Besucher zu täuschen, indem sie sie auf eine ganz andere als die erwartete Seite geleitet haben, lässt sich die Anzeige der Adressleiste in vielen Browsern nicht mehr ausblenden (es sei denn, der *Anwender* will das so).

    myWindow=window.open("", "Fenstername", "top = " + (parent.document.getElementsByTagName('frameset')[0].offsetHeight / 2 - 200) + ",left = " + (parent.document.getElementsByTagName('frameset')[0].offsetWidth / 2 - 200) + ",width = 400,height = 400,location=no");

    Dir ist hoffentlich klar, dass dieses Popup bei vielen Besuchern gar nicht erst angezeigt wird? Es gibt Popup-Blocker, die angeforderte (durch einen Klick ausgelöste) Popups von unerwarteten unterscheiden können; in diesem Fall hätte dein Ansatz eine Chance. Aber viele Popup-Blocker unterdrücken jegliches Öffnen neuer Fenster - da hättest du Pech.
    Übrigens sind Leerzeichen im Parameterstring von window.open() problematisch.

    myWindow.document.writeln("<HTML><HEAD>");
        myWindow.document.writeln("<LINK href = 'css.css' type = text/css rel = stylesheet>");
        myWindow.document.writeln("<SCRIPT type = 'text/Javascript'>");
        myWindow.document.writeln("<!--");
        myWindow.document.writeln("function Warnung(){");
        myWindow.document.writeln("window.open('" + x + "','')");
        myWindow.document.writeln("window.close();");
        myWindow.document.writeln("}");
        myWindow.document.writeln("//-->");
        myWindow.document.writeln("</SCRIP"+"T>");

    Zu diesen Zeilen fällt mir eine Menge ein.
    Das naheliegendste: Warum machst du so einen Aufwand, mit Javascript ein Dokument in das (eventuell) neu geöffnete Fenster hineinzuschreiben, anstatt dieses Dokument direkt vom Server zu öffnen, indem du es mit dem ersten Parameter von window.open() referenzierst?
    Bedenklich finde ich auch, dass du nirgends überprüfst, ob myWindow eine gültige window-Referenz ist. Beim Beispiel mit dem Popup-Blocker ist es das nämlich nicht - dann ist myWindow entweder null oder referenziert ein Fenster, das schon wieder automatisch geschlossen wurde.
    Aus einem Popup mit window.open() ein weiteres Popu zu öffnen, finde ich übrigens schon recht krass.
    Warum schreibst du die HTML-Tags, die dein Script erzeugt, eigentlich groß? Das ist unüblich (in XHTML wäre es sogar falsch), Kleinschreibung ist die Regel. Attributwerte sollten in Anführungszeichen stehen, was du teilweise missachtest. Auch das Setzen von Leerzeichen vor und hinter dem '=' von HTML-Attributen ist schlechter Stil. Und dass die Auskommentierung von Script-Code mit HTML-Kommentaren völlig überflüssiger Nonsens ist, wird hier immer wieder erwähnt.

    myWindow.document.writeln("<FORM><input type = 'button' value = 'Link in neuem Fenster &ouml;ffnen' onclick = 'javascript:Warnung()'></FORM>");

    Was willst du hier mit dem Label "javascript:" erreichen?

    Fassen wir also zusammen: Du hast ein hochkompliziertes Gefüge gebaut, das bei einer Verkettung günstiger Umstände den Besucher zu einer neuen URL führt. Du könntest dir viel Mühe und dem Besucher viel Ärger ersparen, wenn du die ganze Konstruktion durch einen simplen Link auf die Zielseite ersetzen würdest.

    Schönen Feiertag noch,
     Martin

    --
    F: Was ist schlimmer: Alzheimer oder Parkinson?
    A: Parkinson. Lieber mal ein Bier vergessen zu zahlen, als eins verschütten.