Turnhschuh: location.href mit anker im IE funktioniert nicht wirklich

Hallo,

wenn ich im Firefox per Javascript die URL mit location.href = "#..." verändere, um den Back-Button wiederzubeleben, funktioniert alles soweit. Firefox speichert in der Historie jeden veränderten Anker-Teil der URL mit ab.

Im Internet Explorer scheint das aber nicht zu funktionieren. Es sieht so aus, als ob IE mir location.href geänderte Anker-Teile in der URL nicht in der Histrorienliste speichert (für die Back-Funktion).

Hier der Code:

<script type='text/javascript'>

function changeSite(url1) {
location.href = "#" + url1;
}
</script>

<a href="javascript:changeSite('1')";>1</a>
<a href="javascript:changeSite('2')";>2</a>
<a href="javascript:changeSite('3')";>3</a>

Im Firefox kann man 1, 2, 3 klciken und wenn man dann auf Back klickt sieht man wie oben in der URL rückwärts 3, 2, 1 erscheint. Beim IE geht das nicht, der springt dann sofort auf die Seite wo man zuvor war.

Wie kann man dieses Problem beheben?

Viele Grüße,
Thorsten

  1. Hallo,

    dummer Weise ist window.history ein geschütztes Objekt. Die Möglichkeiten sehen für eine _prinzipielle_ Betrachtung sehr schlecht aus. Daher:

    Wie kann man dieses Problem beheben?

    Gibt es _spezielle_ Gründe hier auf Javascript zurückzugreifen? Wenn ja, welche und was soll bewerkstelligt werden?

    Gruß aus Berlin!
    eddi

    --
    Der Verweis auf die Grundlagen Deines Handelns, ist das Joch zur Freiheit.
    Aber so gilt: Allen Leuten Recht getan, ist keine Kunst, weil's jeder kann.
    1. Lieber Edgar,

      dummer Weise ist window.history ein geschütztes Objekt.

      dummerweise ist davon in diesem Thread nie die Rede gewesen...

      Liebe Grüße aus Ellwangen,

      Felix Riesterer.

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

        dummer Weise ist window.history ein geschütztes Objekt.

        dummerweise ist davon in diesem Thread nie die Rede gewesen...

        ja. Schön wäre aber, wenn man das Objekt editieren könnte. Damit ließe sich das Problem prinzipiell angehen.

        Gruß aus Berlin!
        eddi

        --
        Der Verweis auf die Grundlagen Deines Handelns, ist das Joch zur Freiheit.
        Aber so gilt: Allen Leuten Recht getan, ist keine Kunst, weil's jeder kann.
        1. Lieber Edgar,

          ja. Schön wäre aber, wenn man das Objekt editieren könnte. Damit ließe sich das Problem prinzipiell angehen.

          noch schöner wären aber vor allem die weniger ehrenwerten Dinge, die man damit dann auch anstellen könnte...

          Liebe Grüße aus Ellwangen,

          Felix Riesterer.

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

            ja. Schön wäre aber, wenn man das Objekt editieren könnte. Damit ließe sich das Problem prinzipiell angehen.

            noch schöner wären aber vor allem die weniger ehrenwerten Dinge, die man damit dann auch anstellen könnte...

            Da frage ich mal lieber nach. ;)
            "noch schöner" i. V. m. "ehrenwert" meist Du ironisch?

            Gruß aus Berlin!
            eddi

            --
            Der Verweis auf die Grundlagen Deines Handelns, ist das Joch zur Freiheit.
            Aber so gilt: Allen Leuten Recht getan, ist keine Kunst, weil's jeder kann.
            1. Lieber Edgar,

              Da frage ich mal lieber nach. ;)
              "noch schöner" i. V. m. "ehrenwert" meist Du ironisch?

              ich will damit sagen, dass es schon seinen sehr ernsten und trifftigen Grund hat, warum man das history-Objekt nur lesen darf. Es ist ja schon ärgerlich genug, dass man im IE die Zwischenablage des Betriebssystems lesen und manipulieren darf...

              Liebe Grüße aus Ellwangen,

              Felix Riesterer.

              --
              ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
              1. ich will damit sagen, dass es schon seinen sehr ernsten und trifftigen Grund hat, warum man das history-Objekt nur lesen darf.

                danke für die aller schönste Neuheit...

                Gruß aus Berlin!
                eddi

                --
                Der Verweis auf die Grundlagen Deines Handelns, ist das Joch zur Freiheit.
                Aber so gilt: Allen Leuten Recht getan, ist keine Kunst, weil's jeder kann.
  2. Hi,

    wenn ich im Firefox per Javascript die URL mit location.href = "#..." verändere, um den Back-Button wiederzubeleben, ...

    hmm, die Beschreibung, oder besser gesagt, die Begründung verstehe ich nicht. Kannst du die anders formulieren, verständlicher? Was setzt den Back-Button bei dir außer Kraft, so dass man ihn "wiederbeleben" muss?

    Firefox speichert in der Historie jeden veränderten Anker-Teil der URL mit ab.

    Wozu das?

    Es sieht so aus, als ob IE mir location.href geänderte Anker-Teile in der URL nicht in der Histrorienliste speichert (für die Back-Funktion).

    Das erscheint mir auch logisch: Die History ist ja die Liste der besuchten Seiten. Die Navigation *innerhalb* der Seite ist dabei unerheblich.

    Wie kann man dieses Problem beheben?

    Welches Problem? Du hast noch keins beschrieben.

    So long,
     Martin

    --
    Bitte komme jemand mit einem *g* zum Wochenende, damit nicht über mich gelacht wird.
      (Gunnar Bittersmann)
    1. Firefox speichert in der Historie jeden veränderten Anker-Teil der URL mit ab.
      Wozu das?
      Es sieht so aus, als ob IE mir location.href geänderte Anker-Teile in der URL nicht in der Histrorienliste speichert (für die Back-Funktion).
      Das erscheint mir auch logisch: Die History ist ja die Liste der besuchten Seiten.

      Nein. Sie ist die Liste der aufgerufenen URLs.
      Das ist die sinnvolle Auffassung in FF.

      Wir müssen jetzt schon irgendwelche Normen konsultieren, wenn wir darüber streiten wollen. Das ist mir aber um diese Zeit zu mühsam.

      Die Navigation *innerhalb* der Seite ist dabei unerheblich.

      Vielleicht für dich.

      mfg Beat

      --
                       /|
        <°)))o><      / |    /|
                  ---- _|___/ |     ><o(((°>
                 OvVVvO    __ |         ><o(((°>
      <°)))o><  /v    v\/  |
       <°)))o>< ^    ^/_/_         ><o(((°>
                 ^^^^/___/
      ><o(((°>    ----       ><o(((°>
         <°)))o><                      ><o(((°>o
    2. Genau das ist das Problem vieler Foren! Antworten die nur Sachen hinterfragen wie und warum etwas so gemacht wurde. Reicht nicht einfach das es so ist, und der Fragesteller einfach nach einer Problemlösung sucht? Wie hilfreich ist dann bitte antworten wie " Warum ist das so? " und " Wozu das ?" und am besten ist der Satz " Welches Problem? Du hast noch keins beschrieben.".

      Um deine Fragen zu beantworten: Es ist einfach so! Mit Ajax wird halt die Seite verändert und über Anker in der URL wird versucht der Zustand der Anwendung zu speichern, so das der Zurück-button benutzt werden kann. Bei Firefox funktioniert das auch wunderbar, bei IE aber nicht. Die Frage ist warum nicht. Eine Beispieldatei um das ganze selbst auszuprobieren habe ich ebenfalls hinzugefügt. Und ja, es macht durchaus sinn das die Anker mit in der Historie gespeichert werden.

      Hi,

      wenn ich im Firefox per Javascript die URL mit location.href = "#..." verändere, um den Back-Button wiederzubeleben, ...

      hmm, die Beschreibung, oder besser gesagt, die Begründung verstehe ich nicht. Kannst du die anders formulieren, verständlicher? Was setzt den Back-Button bei dir außer Kraft, so dass man ihn "wiederbeleben" muss?

      Firefox speichert in der Historie jeden veränderten Anker-Teil der URL mit ab.

      Wozu das?

      Es sieht so aus, als ob IE mir location.href geänderte Anker-Teile in der URL nicht in der Histrorienliste speichert (für die Back-Funktion).

      Das erscheint mir auch logisch: Die History ist ja die Liste der besuchten Seiten. Die Navigation *innerhalb* der Seite ist dabei unerheblich.

      Wie kann man dieses Problem beheben?

      Welches Problem? Du hast noch keins beschrieben.

      So long,
      Martin

      1. Hi,

        Genau das ist das Problem vieler Foren! Antworten die nur Sachen hinterfragen wie und warum etwas so gemacht wurde.

        Das ist kein Problem, sondern kann eine extrem grosse Hilfestellung sein - fuer die Leute, die eventuell gerade auf dem Holzweg sind, und daraufhin ihr Vorgehen noch mal von einer anderen Seite betrachten koennen.

        (Ein Problem hingegen sind Leute, die TOFU produzieren - unterlasse das bitte kuenftig.)

        Reicht nicht einfach das es so ist, und der Fragesteller einfach nach einer Problemlösung sucht?

        Nein, das *kann* niemandem reichen, der etwas wirklich verstehen, und nach einer *guten*, moeglichst der besten Loesung suchen will.

        Wie hilfreich ist dann bitte antworten wie " Warum ist das so? " und " Wozu das ?"

        Siehe oben. Um dein Problem verstehen zu koennen, muss man als Aussenstehender erst mal auch die Rahmenbedingungen einschaetzen koennen - um dir dann vllt. sogar bessere Wege der Umsetzung und Realisierung aufzeigen zu koennen.
        Das muss im konkreten Fall vielleicht nicht zutreffen - oftmals tut es das aber eben doch. Und fuer so etwas sollte man immer dankbar sein - wenn die eigene, sich oftmals einstellende Betriebsblindheit von anderen kritisch hinterfragt wird.

        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."
        1. Noch so ein Hilfreiches Posting! Ich habe dohc extra den Beispielcode gepostet, mit dem das Problem für jederman nachvollziehbar nachgestellt werden kann. Einfach die zeilen als html speichern und im Firefox und IE ausprobieren. Mehr gibts dazu nicht zu sagen. Es muss doch eine Lösung dafür geben OHNE das komplette system das bereits läuft umzukrempeln. Einen Fehler zu fixen der nur im IE da ist, wird doch sicherlich einfacher sein zu lösen als die komplette Ajax Anwendung die zig-fach aufwendiger ist komplett umzukrempeln.

          1. Hi,

            Noch so ein Hilfreiches Posting!

            Noch mehr von deinem Gejammer!

            Mehr gibts dazu nicht zu sagen.

            Word! Permission to get lost hereby issued.

            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."
            1. Hallo Chris,

              Noch so ein Hilfreiches Posting!
              Noch mehr von deinem Gejammer!

              Mehr gibts dazu nicht zu sagen.
              Word! Permission to get lost hereby issued.

              YMMD! :-)

              Schönen Abend noch,
               Martin

              --
              Ja, ja ... E.T. wusste schon, warum er wieder nach Hause wollte.
            2. Und noch ein Posting von dir ohne nennenswerten Inhalt im Bezug auf das Problem und dessen Lösung.

  3. Hi,

    Im Internet Explorer scheint das aber nicht zu funktionieren. Es sieht so aus, als ob IE mir location.href geänderte Anker-Teile in der URL nicht in der Histrorienliste speichert (für die Back-Funktion).

    Und wenn du location.hash verwendest?

    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."
    1. Hallo Thorsten,

      Und wenn du location.hash verwendest?

      da Du kein Bezug darauf genommen hattest, frage ich mal nach: War Dir dieser Hinweis nun hilfreich, oder konnte er Dein Problem nicht lösen?

      Gruß aus Berlin!
      eddi

      --
      Der Verweis auf die Grundlagen Deines Handelns, ist das Joch zur Freiheit.
      Aber so gilt: Allen Leuten Recht getan, ist keine Kunst, weil's jeder kann.