André: Übergabe von Werten für window.open()

Hallo Freunde!

Ich habe eine Funktion zum Öffnen von neuen Fenstern in eine extra .js-Datei ausgelagert und möchte die Werte für Breite, Höhe, Position und für die Scrollbars übergeben.

JavaScript-Datei (NeuesFenster.js):

  
function  FensterOeffnen (Adresse, Breite, Hoehe, Links, Oben, ScrBars) {  
  Fenster1 = window.open(Adresse,  "Zweitfenster",  
  "width="+Breite+", height="+Hoehe+", left="+Links+", top="+Oben+", scrollbars="+ScrBars+"");  
  Fenster1.focus();  
}  

Und der Aufruf in meiner HTML-Datei:

  
<a href="javascript:void(0);" onClick="FensterOeffnen('inhalt/bericht.html', 700, 500, 40, 20, 'yes'); return false">Bericht</a>  

Ich habe mir den Code teilweise aus dem Netz zusammen gesammelt. Und nun habe ich mal ein paar Verständnisfragen!

Warum muss ich in der Funktion solche komplizierten Eingaben bzw. Anführungsstriche und Pluszeichen machen? "width="+Breite+", height="+Hoehe+",...

Warum funktioniert das nur, wenn ich in der HTML-Datei <a href="javascript:void(0);" onClick="FensterOeffnen('inhalt/bericht.html'... eingebe und funktioniert nicht, wenn ich <a href="inhalt/bericht.html" onClick="FensterOeffnen('this.ref'... eingebe??

Im FireFox öffnet er mir ein neues Fenster mit richtigem Inhalt, im IE zeigt er einen Ordner meiner HD an (ich arbeite [erstmal] lokal).

Sperrt der IE diese Funktion? Ich sage beim Öffnen der Seite bewusst "Geblockte Inhalte zulassen".

Vielen Dank,

André

  1. Warum funktioniert das nur, wenn ich in der HTML-Datei <a href="javascript:void(0);" onClick="FensterOeffnen('inhalt/bericht.html'... eingebe und funktioniert nicht, wenn ich <a href="inhalt/bericht.html" onClick="FensterOeffnen('this.ref'... eingebe??

    weil dein a-Element kein "ref"-Attribut hat

    1. Mahlzeit suit,

      Warum funktioniert das nur, wenn ich in der HTML-Datei <a href="javascript:void(0);" onClick="FensterOeffnen('inhalt/bericht.html'... eingebe und funktioniert nicht, wenn ich <a href="inhalt/bericht.html" onClick="FensterOeffnen('this.ref'... eingebe??

      weil dein a-Element kein "ref"-Attribut hat

      Falsch - weil 'this.ref' offensichtlich keine gültige URL ist.

      MfG,
      EKKi

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      1. weil dein a-Element kein "ref"-Attribut hat

        Falsch - weil 'this.ref' offensichtlich keine gültige URL ist.

        Erwischt :p - aber auch this.ref wäre Unsinn ;)

  2. Mahlzeit André,

    Warum muss ich in der Funktion solche komplizierten Eingaben bzw. Anführungsstriche und Pluszeichen machen? "width="+Breite+", height="+Hoehe+",...

    Weil Du an der Stelle einen String aus konstanten und variablen Teilen http://de.selfhtml.org/javascript/sprache/operatoren.htm#zeichenkettenverknuepfung@title=zusammensetzt.

    Warum funktioniert das nur, wenn ich in der HTML-Datei <a href="javascript:void(0);" onClick="FensterOeffnen('inhalt/bericht.html'... eingebe und funktioniert nicht, wenn ich <a href="inhalt/bericht.html" onClick="FensterOeffnen('this.ref'... eingebe??

    Weil Du im letzteren Fall wahrscheinlich statt eines Strings mit dem Inhalt "this.ref" eher den Wert des Attributs http://de.selfhtml.org/html/verweise/definieren.htm#beispiele@title=href des <http://de.selfhtml.org/javascript/sprache/objekte.htm#this@title=aktuellen Elements> übergeben wolltest.

    Dir fehlen offenbar noch elementare Grundlagen von Javascript - insbesondere was Variablen, verschiedene Variablentypen, ihre Ver- bzw. Bearbeitung usw. angeht. Eigne Dir diese Kenntnisse an ... ohne sie wirst Du es in Zukunft auf Dauer schwer haben!

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Hi!

      Dir fehlen offenbar noch elementare Grundlagen von Javascript - insbesondere was Variablen, verschiedene Variablentypen, ihre Ver- bzw. Bearbeitung usw. angeht. Eigne Dir diese Kenntnisse an ... ohne sie wirst Du es in Zukunft auf Dauer schwer haben!

      Das kann man wohl getrost auf "Grundlagen jeglicher Programmiersprachen" ausweiten. Eventuelle Ausnahmen koennen wohl guten Gewissens ignoriert werden. Ich weiss auch, das es mittlerweile nicht unueblich ist, Strings z.B. parametrisiert zu verarbeiten. (C#: Console.WriteLine("Hallo {0}, wie geht es {1}", name, objekt);)

      Aber dafuer gibts ja das Forum. Hier werden Sie geholfen.

      --
      "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
            - T. Pratchett