Michi: Seitenaufbau bricht bei Klicken von Links im IE ab

Hallo,

habe im IE 6 festgestellt, dass der Seitenaufbau abbricht, wenn auf der bis dahin aufgebauten Seite Links mit JavaScript-Aufruf geklickt werden, auch, wenn der JavaScript-Link nur ein "void" enthält.
(Ist das im IE nach Version 6 immer noch so?)

Zwar ist das Problem rein technisch erstmal behoben, wenn man aus den Links normalen Text unter Anbindung eines EventHandlers macht (z.B. onClick=""), hat aber den entscheidenden Nachteil, dass der Text dann nicht mehr als Link erkennbar ist.

Ziel:

Es soll möglich sein, dass JavaScript-Links auf der Seite geklickt werden, ohne, dass der Seitenaufbau abgebrochen wird und die Links auch als solche erkennbar sind (Mauscursor soll sich beim Drüberfahren verändern, Hover-Formatierungen sollen möglich sein, etc.).

Gibt es eine Lösung für dieses Problem, die auch im IE funktioniert?

Gruß Michi

  1. Hallo!

    habe im IE 6 festgestellt, dass der Seitenaufbau abbricht, wenn auf der bis dahin aufgebauten Seite Links mit JavaScript-Aufruf geklickt werden, auch, wenn der JavaScript-Link nur ein "void" enthält.
    (Ist das im IE nach Version 6 immer noch so?)

    Meiner Erfahrung nach ist das bei _allen_ Links so. Hat also nichts mit JavaScript zu tun.
    Dann ist die Funktion doch wohl erwünscht! Wenn ich auf einen Link klicke erwarte ich eine sofortige Reaktion, nicht erst "sonstwann".
    Wozu sollte es gut sein, das zu deaktivieren?

    Vielleicht hab ich dich aber auch falsch verstanden.

    Grüße, Matze

    1. Hallo Matze,

      Meiner Erfahrung nach ist das bei _allen_ Links so. Hat also nichts mit JavaScript zu tun.
      Dann ist die Funktion doch wohl erwünscht! Wenn ich auf einen Link klicke erwarte ich eine sofortige Reaktion, nicht erst "sonstwann".
      Wozu sollte es gut sein, das zu deaktivieren?

      Es geht um JavaScript-Links, die im Hintergrund AJAX-Routinen ausführen sollen. Bsp.: Foto-Galerie. Unter jedem Foto steht ein Link "Foto merken", das beim Klicken in eine Merkliste eingetragen werden soll.

      Wenn der User so einen Link klickt, wäre es wünschenswert, dass die Seite dennoch bis zum Ende weiter aufgebaut wird.

      (Bei Nicht-JavaScript-Links wäre es in vielen Fällen natürlich egal, wenn ja sowieso auf eine andere Seite verwiesen wird, hier, wo Logik im Hintergrund abgearbeitet werden soll, aber nicht. ;) )

      Gruß Michi

  2. Lieber Michi,

    ein Link ist dazu da, eine neue Resource aufzurufen. Das hat ganz zwingend mit dem Laden eines neuen Dokuments zu tun. Dass dabei das zu-Ende-Laden der gegenwärtigen Seite relativ sinnfrei ist, sollte klar sein. Ergo: Ein Link ist nicht das geeignete Mittel, das Du benötigst.

    Es ist gute und sinnvolle Praxis, dass anklickbare "Dinge", die nur JavaScript-Funktionalitäten auslösen, auch von JavaScript ins Dokument geschrieben werden, da sie ohne JavaScript keinen Sinn haben. Dazu muss es sich nicht notwendigerweise um einen Link (sprich <a href="">-Element) handeln. Es könnte auch ein <span>-Element sein, das eine ID hat und das über CSS visuell zu einem Link gemacht wird.

    Du nanntest bereits <element onclick="function...."> als Lösungsansatz. Das finde ich sehr sinnvoll, insbesondere unter obigen Gesichtspunkten.

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hallo Felix,

      ...
      Es könnte auch ein <span>-Element sein, das eine ID hat und das über CSS visuell zu einem Link gemacht wird.
      ...

      Sieht unter gegebenen Umständen nach dem besten Ansatz aus, allerdings hab ich noch nie Text-Elemente via CSS als Links getarnt, so dass z.B. Hover-Effekte möglich sind, gibt es da ein Stichwort oder einen Link auf ein professionelles Beispiel, das in allen Browsern funktioniert? ;)

      Gruß Michi

      1. Lieber Michi,

        so dass z.B. Hover-Effekte möglich sind, gibt es da ein Stichwort oder einen Link auf ein professionelles Beispiel, das in allen Browsern funktioniert? ;)

        wenn Du die Bedienelemente via JavaScript ins Dokument schreibst, dann kannst Du sie auch mit einem onmouseover-Eventhandler versehen, der ihre Klasse ändert. Nach meinen Erfahrungen mit IE schafft der :hover wirklich nur bei <a>-Elementen, nicht jedoch bei allen restlichen. Aber dafür ist ja JavaScript da, um dem <span>-Element passende Klassen zu verpassen...

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
      2. Hallo,

        einfach im CSS statt a span schreiben ;)

        mfg, Flo

        --
        sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
        1. Lieber levu,

          einfach im CSS statt a span schreiben ;)

          das wird im IE nicht genügen...

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
          1. Hi,

            einfach im CSS statt a span schreiben ;)

            das wird im IE nicht genügen...

            Nur in Versionen <= 6 nicht.

            MfG ChrisB

            --
            „This is the author's opinion, not necessarily that of Starbucks.“
            1. einfach im CSS statt a span schreiben ;)

              das wird im IE nicht genügen...

              Nur in Versionen <= 6 nicht.

              Habe es mal ausprobiert und es stimmt, IE 6 kann da nicht mithalten und weil der immer noch ziemlich verbreitet ist, wird die reine JavaScript-Lösung anvisiert.

              Danke Euch allen! ;)
              Michi