Andreas Dölling: IE-Problem mit location

Hallo,

ich habe diesen Link:
<a id="customizeLink" href="suche_test.html&amp;mode=extended" onclick="callExtendedSearch();return false;">Erweiterte Suche</a>

Er soll es Benutzern mit Javascript ermöglichen, einige Werte aus der aktuell aufgerufenen einfachen Suche mit in die erweiterte Suche zu übernehmen (dafür sorgt die Funktion callExtendedSearch).
Benutzer ohne Javascript gelangen ohne diese Werte zur erweiterten Suche (href-Attribut).

In Mozilla und Opera klappt das wie erwartet.
Der IE allerdings ruft immer die im href-Attribut angegebene URL auf. Bei aktiviertem Javascript geht er zwar in die Funktion callExtenedSearch und baut dort die korrekte erweitere URL zusammen - scheint dann aber die Zeile window.location.href = url; zu ignorieren.

Könnt Ihr Euch das erklären? Hat der IE Probleme mit location.href? Das wäre mir neu.

Danke für Eure Tipps!

Ciao,
Andreas

--
"Das Corporate Design für das Internet sieht eine Reihe von Grafikelementen vor, die die Optik der Webseite visuell und funktionell beeinflussen." - (Zitat aus dem "Styleguide Corporate Design"  eines großen Konzerns...)
  1. hi,

    Der IE allerdings ruft immer die im href-Attribut angegebene URL auf.

    Das spricht für einen Fehler in der Funktion - er bricht die JS-Abarbeitung ab, return false kommt nicht mehr zur Ausführung.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo,

      Das spricht für einen Fehler in der Funktion - er bricht die JS-Abarbeitung ab, return false kommt nicht mehr zur Ausführung.

      hm, das schließe ich aus. Der Ausdruck window.location.href = url; ist die letzte Zeile der Funktion. Und direkt davor kann ich mir die Variable url ausgeben lassen.

      Interessant ist in diesem Zusammenhang auch, daß der etwas abgewandelte Link <a id="customizeLink" href="suche_test.html&amp;mode=extended" onclick="callExtendedSearch();alert(1);return false;">Erweiterte Suche</a> die Weiterleitung richtig macht.
      Noch während die Testausgabe "1" angezeigt wird, wird im Hintergrund die gewünschte URL geladen.

      Auch dies funktioniert: <a id="customizeLink" href="#" onclick="callExtendedSearch();return false;">Erweiterte Suche</a>.

      Ciao,
      Andreas

      --
      "Das Corporate Design für das Internet sieht eine Reihe von Grafikelementen vor, die die Optik der Webseite visuell und funktionell beeinflussen." - (Zitat aus dem "Styleguide Corporate Design"  eines großen Konzerns...)
      1. hi,

        Interessant ist in diesem Zusammenhang auch, daß der etwas abgewandelte Link <a id="customizeLink" href="suche_test.html&amp;mode=extended" onclick="callExtendedSearch();alert(1);return false;">Erweiterte Suche</a> die Weiterleitung richtig macht.
        Noch während die Testausgabe "1" angezeigt wird, wird im Hintergrund die gewünschte URL geladen.

        OK, dann liegt es vermutlich daran.
        Die Weiterleitung über Zuweisung an location.href ist erfolgt - der IE merkt, dass er jetzt eine andere Seite laden soll. Also sieht er keinen Grund, die Ausführung des Scriptes noch fortzuführen - das return false entfällt.
        Leider ist er im nächsten Schritt nicht mehr so intelligent - dass er den eigentlich Link jetzt nicht mehr ausführen muss, merkt er nicht, und macht das.

        Mein Vorschlag: Leite nicht weiter, sondern weise onClick den neu erzeugen URL einfach dem href-Attribut des Links zu, und verzichte auf das Unterbrechen des Eventhandlings mittels return false.

        Klick auf Link -> onClick gibt Link neues Ziel -> Link zu diesem neuen Ziel wird anschließend verfolgt.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. hi,

          Leider ist er im nächsten Schritt nicht mehr so intelligent - dass er den eigentlich Link jetzt nicht mehr ausführen muss, merkt er nicht, und macht das.

          Korrektur:

          Leider ist er im nächsten Schritt nicht mehr so intelligent - dass er den eigentlichen Link jetzt nicht mehr ausführen muss, merkt er nicht, und folgt ihm trotzdem noch.

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
        2. Hallo,

          Klick auf Link -> onClick gibt Link neues Ziel -> Link zu diesem neuen Ziel wird anschließend verfolgt.

          super Idee!
          Habe ich mal eben ausprobiert, und es funktioniert.
          Danke!

          Was mich wirklich erstaunt, das ist, daß mir dieses Problem bisher noch nie untergekommen ist....

          Ciao,
          Andreas

          --
          "Das Corporate Design für das Internet sieht eine Reihe von Grafikelementen vor, die die Optik der Webseite visuell und funktionell beeinflussen." - (Zitat aus dem "Styleguide Corporate Design"  eines großen Konzerns...)