[IE6 vs JS] Back button, anchors en location.href

Pagina: 1
Acties:

Onderwerpen


  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
IE6 buffert mijn #id anchors netjes terug als ik de back button gebruik. Maar location.href snapt het niet helemaal, die blijft gewoon met die laatste #id terug komen als ik hem opvraag. Is er een redelijk simpele manier om dit toch werkend te krijgen?

Wat ik nu heb:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        
            var bufferedUrl = location.href;
            function pollBackButton()
            {
                if (bufferedUrl != location.href)
                {
                    currentUrlParts = location.href.split("#");
                    alert(currentUrlParts[1]);
                    if (currentUrlParts[1] != null && currentUrlParts[1] != "")
                    {
                        showFaq(currentUrlParts[1]);
                    }
                    else
                    {
                        resetFaq();
                    }
                }
                window.setTimeout(pollBackButton, 1000);
            }
            window.setTimeout(pollBackButton, 1000);


Alleen als mensen een linkje aanklikken wordt bufferedUrl geupdate, met als gevolg dat als je de back knop gebruikt, dit script (in non-IE browsers) detecteert dat de location.href is gewijzigd ten opzichte van de bufferedUrl, de back knop is gebruikt, en er dus ook iets anders getoond moet worden.

IE heeft niet door dat hij een andere location gekregen heeft en blijft persistent de oude href doorgeven.

[ Voor 4% gewijzigd door BikkelZ op 14-02-2008 11:47 ]

iOS developer


  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
Ah, slechts 30 kb aan javascript en andere code om een kapotte browser te ondersteunen:

http://code.google.com/p/reallysimplehistory/

-----------------------------

Ik heb hem nu zo draaien:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
            <script type="text/javascript" src="iescks/json2007.js"></script>
            <script type="text/javascript" src="iescks/rsh.js"></script>

            <script type="text/javascript">
                window.dhtmlHistory.create();

                var yourListener = function(newLocation, historyData) {
                    alert(newLocation);
                    if (newLocation != "")
                    {
                        showFaq(newLocation);
                    }
                    else
                    {
                        resetFaq();
                    }
                }

                window.onload = function() {
                    dhtmlHistory.initialize();
                    dhtmlHistory.addListener(yourListener);
                };
            </script>


Maar ik heb door middel van alerts al geverifieerd dat hij niet triggert als ik op back klik in IE7. Eigenlijk werkt het net zo slecht als mijn simpele methode onder IE.

--------------------

Het moest allemaal in dezelfde map staan.....

[ Voor 79% gewijzigd door BikkelZ op 14-02-2008 13:28 . Reden: FIXED ]

iOS developer