kalle: XHTML

Hallo,

hab da mal eine Frage, gibt es bei XHTML 1.1 irgend eine Möglichkeit Links im neuen Fenster zu öffnen. Ich weiß ja das man mit dem Target-Attribut ein neues Fenster definiert, aber dies wird ja in der 1.1 Version nicht mehr unterstützt.

Cu Kalle

  1. hab da mal eine Frage, gibt es bei XHTML 1.1 irgend eine Möglichkeit Links im neuen Fenster zu öffnen. Ich weiß ja das man mit dem Target-Attribut ein neues Fenster definiert, aber dies wird ja in der 1.1 Version nicht mehr unterstützt.

    Nur mit JavaScript.
    Folgende Konstruktion finde ich ganz praktisch, weil sie auch dann noch dem Link folgt, wenn JS abgeschalten ist:

    <a href="http://www.derlink.de/" onclick="void(window.open(this.href, '', '')); return false;">Linktext</a>

    dbenzhuser

    --
    sh:( fo:| ch:? rl:( br:$ n4:° ie:| mo:) va:) de:[ zu:) fl:( ss:| ls:[ js:(
    1. <a href="http://www.derlink.de/" onclick="void(window.open(this.href, '', '')); return false;">Linktext</a>

      Wofür machst Du da das void(...) hin? Geht doch ohne auch. Oder ist das sonst unsauber?

      Heiner

      1. Wofür machst Du da das void(...) hin? Geht doch ohne auch. Oder ist das sonst unsauber?

        Keine Ahnung, hab das nur irgendwo (hier im Forum) so gelesen und weils geklappt hat so gelassen...
        Warum nun das void(..) sollte am besten jemand beantworten, der sich wirklich damit auskennt, JavaScript ist nicht so mein Fall.

        dbenzhuser

        --
        sh:( fo:| ch:? rl:( br:$ n4:° ie:| mo:) va:) de:[ zu:) fl:( ss:| ls:[ js:(
        1. Warum nun das void(..) sollte am besten jemand beantworten, der sich wirklich damit auskennt, JavaScript ist nicht so mein Fall.

          Bislang mache ich es ohne void -- problemlos. Hat jemand eine Begründung für die Verwendung von void in diesem Fall?

          1. Warum nun das void(..) sollte am besten jemand beantworten, der sich wirklich damit auskennt, JavaScript ist nicht so mein Fall.

            Bislang mache ich es ohne void -- problemlos. Hat jemand eine Begründung für die Verwendung von void in diesem Fall?

            Hallo,

            danke erst mal, habs eingebaut und funktioniert bestens. Den Vali störts überhaupt nicht und das ist die hauptsache. Ich weiß ja das es nicht schön ist mit einem neuen Fenster, aber manchmal gehts halt nicht anders.

          2. Moin!

            Bislang mache ich es ohne void -- problemlos. Hat jemand eine Begründung für die Verwendung von void in diesem Fall?

            void() vernichtet den Rückgabewert. Da window.open() ein Fensterobjekt zurückliefert, ist void() notwendig, wenn man das in href="javascript:..." einsetzt. Da man das aber nicht machen soll, und onclick mit dem Rückgabewert nicht unbedingt böses anfängt, darf es auch gerne weggelassen werden.

            - Sven Rautenberg

            --
            ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
            1. void() vernichtet den Rückgabewert. Da window.open() ein Fensterobjekt zurückliefert, ist void() notwendig, wenn man das in href="javascript:..." einsetzt. Da man das aber nicht machen soll, und onclick mit dem Rückgabewert nicht unbedingt böses anfängt, darf es auch gerne weggelassen werden.

              Was könnte denn passieren, wenn man das bei javascript: vergisst, und warum ist es bei onclick unkritisch? Die beiden machen doch im Prinzip das Gleiche? Wäre es sauberer es auch bei onclick zu setzen oder ist es dort auch theoretisch unerheblich?

              Heiner

              1. Moin!

                void() vernichtet den Rückgabewert. Da window.open() ein Fensterobjekt zurückliefert, ist void() notwendig, wenn man das in href="javascript:..." einsetzt. Da man das aber nicht machen soll, und onclick mit dem Rückgabewert nicht unbedingt böses anfängt, darf es auch gerne weggelassen werden.

                Was könnte denn passieren, wenn man das bei javascript: vergisst, und warum ist es bei onclick unkritisch? Die beiden machen doch im Prinzip das Gleiche? Wäre es sauberer es auch bei onclick zu setzen oder ist es dort auch theoretisch unerheblich?

                Probier es aus:

                <a href="javascript:window.open("http://www.example.com","test");">Link</a>

                Als Ergebnis wird das Ausgangsfenster nicht stehenbleiben, sondern "[object]" anzeigen.

                Es ist bei onclick aber egal, ob mit oder ohne void(). Ich würde aber nicht sagen, dass das eine oder andere "sauberer" ist.

                - Sven Rautenberg

                --
                ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
                1. Hallo Sven,

                  Es ist bei onclick aber egal, ob mit oder ohne void().

                  Jain. void() an sich ist egal, aber ein return false sollte auf jeden Fall drin sein. Denn: Wenn etwas anderes als false zurückgegeben wird, dann wird dem Link gefolgt:

                  <a href="a.html" onclick="window.open (this.href);">Link</a>

                  führt dazu, dass a) ein Fenster mit a.html geöffnet wird und b) im aktuellen Fenster a.html geladen wird.

                  <a href="a.html" onclick="window.open (this.href); return false;">Link</a>

                  dagegen führt dazu, dass nur das neue Fenster geöffnet wird.

                  <a href="a.html" onclick="void (window.open (this.href));">Link</a>

                  führt dazu, dass das gleiche wie im Fall 1 passiert, da der Standardrückgabewert für diesen Eventhandler genommen wird (true).

                  <a href="a.html" onclick="void (window.open (this.href)); return false;">Link</a>

                  würde auch funktionieren, dort ist jedoch das void() überflüssig.

                  Viele Grüße,
                  Christian

                  --
                  Losung und Lehrtext für Sonntag, 12. Oktober 2003:
                  Sie sollen erfahren, dass ich, der Herr, ihr Gott, bei ihnen bin und dass sie vom Hause Israel mein Volk sind, spricht Gott der Herr. (Hesekiel 34,30)
                  Hat denn Gott sein Volk verstoßen? Das sei ferne! Denn ich bin auch ein Israelit, vom Geschlecht Abrahams, aus dem Stamm Benjamin. (Römer 11,1)
                  (http://www.losungen.de/heute.php3, i.V. Götz)
    2. Hallo dbenzhuser,

      <a href="http://www.derlink.de/" onclick="void(window.open(this.href, '', '')); return false;">Linktext</a>

      window.open () ist kein wirklicher Ersatz für target="_blank". Siehe auch </archiv/2003/6/50774/#m278507>

      Viele Grüße,
      Christian

      --
      Losung und Lehrtext für Sonntag, 12. Oktober 2003:
      Sie sollen erfahren, dass ich, der Herr, ihr Gott, bei ihnen bin und dass sie vom Hause Israel mein Volk sind, spricht Gott der Herr. (Hesekiel 34,30)
      Hat denn Gott sein Volk verstoßen? Das sei ferne! Denn ich bin auch ein Israelit, vom Geschlecht Abrahams, aus dem Stamm Benjamin. (Römer 11,1)
      (http://www.losungen.de/heute.php3, i.V. Götz)
  2. Hallo,

    target="_blank" geht in xhtml1.1 in der Tat nicht.

    Die Frage ist aber auch, warum Du xhtml1.1 benutzen willst. Es mag wohl Anwendungen geben und Du magst hier für Dich sicher auch richtig abgewägt haben, aber im Forum wurden schon häufiger Diskussionen geführt, die xhtml1.1 im Prinzip als theoretisch gut, praktisch aber noch untauglich abgestempelt haben.

    Auch wenn man nämlich dem Nutzer die Möglichkeit überlassen sollte wo er das Fenster öffnet, so mag es doch Anwendungen geben (z.B. Aufklappfenster), in denen man das doch wünscht oder banaler: Anwendungen in denen der Kunde das einfach von einem Webgestalter wünscht.

    Ich empfehle "xhtml1.0 transitional", aber das bleibt letztlich Deine Entscheidung.

    Heiner

  3. Hallo kalle,

    hab da mal eine Frage, gibt es bei XHTML 1.1 irgend eine Möglichkeit Links im neuen Fenster zu öffnen.

    1. Warum willst Du XHTML 1.1 einsetzen? Was versprichst Du Dir davon? (Verglichen mit XHTML 1.0 resp. HTML 4.01 Transitional)
    2. Sind Dir die Argumente für und wider Links in neuen Fenstern bekannt, die zu Hauf im Archiv zu finden sind?

    Viele Grüße,
    Christian

    --
    Losung und Lehrtext für Sonntag, 12. Oktober 2003:
    Sie sollen erfahren, dass ich, der Herr, ihr Gott, bei ihnen bin und dass sie vom Hause Israel mein Volk sind, spricht Gott der Herr. (Hesekiel 34,30)
    Hat denn Gott sein Volk verstoßen? Das sei ferne! Denn ich bin auch ein Israelit, vom Geschlecht Abrahams, aus dem Stamm Benjamin. (Römer 11,1)
    (http://www.losungen.de/heute.php3, i.V. Götz)