Safari issue: history entry added by location.replace("#hash")Bug 19202

If the location.hash is changed with location.replace(), in Safari 3 a history entry is made while in Firefox 2+ it is not.

For example: Upon loading this page, the location is replaced with "#top"; in Firefox 2+, either the back button will be disabled or clicking back will take the browser to the previous document. In Safari 3, however, the browser goes to the location without a hash.

For another example: Clicking the following link to Foo will redirect the browser to Bar and then to Baz. In Firefox 2+, clicking the back button after clicking Foo will take the browser back to the initial page state (location == "#top"). In Safari 3, however, clicking the back button will cause the browser go be redirected to "#bar" which will then cause the browser to be redirected again to "#baz":

Foo

Donec lacus. Ut erat magna, consequat sed, bibendum nec, varius facilisis, elit. Integer est tellus, consequat nec, interdum quis, mollis nec, mauris. Nulla lectus lectus, posuere vel, euismod non, cursus et, sem. Praesent tellus. Mauris in arcu quis nulla sagittis bibendum. Quisque pulvinar, erat nec vehicula gravida, erat lacus cursus risus, sit amet bibendum neque ligula eu velit. Duis tempor urna eget orci. Suspendisse at leo. Nunc consectetuer eros et felis. Praesent pharetra. Pellentesque dolor felis, vestibulum at, molestie vel, dignissim vel, erat.

Nam quis augue. Ut at mauris. Morbi blandit nulla id metus. Vivamus at ipsum. Pellentesque felis justo, suscipit non, adipiscing nec, consectetuer interdum, tellus. Praesent et ipsum. Cras vitae purus. Aliquam erat volutpat. Donec non purus ac orci euismod imperdiet. Cras ut urna sit amet leo scelerisque faucibus. Vestibulum luctus fermentum mauris.

Etiam at augue. Donec rutrum, risus varius egestas venenatis, leo urna ultricies nisi, at convallis mauris sapien eu est. Etiam sollicitudin. Sed malesuada. Praesent molestie. Quisque id metus. Nulla tortor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris tristique mollis ipsum. Integer luctus. Integer eget orci pellentesque arcu lobortis aliquet. Vivamus laoreet sollicitudin neque. Nulla ultrices sem eget metus. Curabitur fermentum mauris eget velit. Donec vehicula aliquet nisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec tincidunt risus ac sem. Mauris risus neque, commodo a, fermentum id, hendrerit eu, neque. Sed metus massa, tristique a, volutpat eget, vehicula in, dui. Duis scelerisque mauris id quam.

Nunc consequat. Nam gravida purus nec lacus. Vivamus eu ipsum. Praesent tristique tempus risus. Pellentesque tempus quam sed turpis. Mauris aliquam, neque sit amet cursus sodales, diam neque ultrices justo, eget eleifend ligula lorem ut lorem. Nam pulvinar odio quis dui. Integer ultrices. Nunc aliquet. Vivamus tincidunt, magna ut imperdiet congue, neque ligula pellentesque tortor, et faucibus risus mi sed nisi. Donec auctor. In hac habitasse platea dictumst. Quisque varius convallis lacus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam lacus nisi, viverra at, scelerisque vel, auctor ac, ipsum. Etiam congue. Donec urna urna, dignissim sed, commodo et, sagittis vitae, purus. Duis commodo viverra orci.

Donec volutpat massa ac ligula. Suspendisse non magna. Morbi eu enim ac mi dapibus laoreet. Morbi arcu ipsum, rhoncus sed, vulputate quis, volutpat ut, pede. Pellentesque risus diam, venenatis at, commodo a, blandit sed, lorem. Praesent vitae erat vel arcu facilisis molestie. Nulla placerat ante non sem. Nam varius consectetuer quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In facilisis mi eu enim. Pellentesque egestas sollicitudin mi.

Proin ac enim eu pede euismod commodo. Donec vestibulum odio ac quam. Maecenas vulputate ante ac odio. Integer varius pede ac elit fermentum ultricies. Sed venenatis tellus sit amet tellus. Praesent leo. Phasellus sagittis arcu et massa. Etiam lacinia varius magna. Aliquam nec ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In vitae diam dignissim lacus dignissim pellentesque. Nam id leo. Aliquam erat volutpat. Sed elementum lorem vitae turpis. Quisque quis libero. Pellentesque placerat facilisis urna. Aenean magna nisl, hendrerit sit amet, bibendum ac, interdum sed, elit. Aliquam lorem sem, suscipit sed, venenatis a, gravida at, quam. Fusce arcu lacus, sagittis id, lobortis ac, varius et, nibh.

Bar

Quisque adipiscing arcu ut turpis. Morbi ornare aliquet nunc. Nulla fermentum est ac erat. Fusce pellentesque elit vel erat. Vivamus feugiat. Nulla non risus. Cras laoreet, ante ac luctus accumsan, lorem ante tristique eros, eget placerat nibh sapien sit amet erat. Suspendisse diam. Nulla ultricies augue in lectus. Pellentesque placerat tristique nisi. Suspendisse nisi lectus, ullamcorper quis, laoreet vel, sagittis in, ligula. Pellentesque sagittis magna vitae purus. Maecenas nibh pede, aliquam sed, luctus vel, tincidunt quis, metus. Praesent non arcu ut nunc pretium ultrices. Etiam porta magna ut felis. Integer placerat nisi sit amet tellus.

Vivamus tristique leo ut mauris. Ut ultrices nibh id sem. Nullam sollicitudin dolor a ligula. Praesent eget lorem quis risus facilisis congue. Vestibulum id arcu at est placerat aliquam. Mauris diam enim, volutpat at, accumsan ut, hendrerit sed, lacus. Cras ac massa vitae risus porta lacinia. Duis bibendum pharetra nunc. Sed rhoncus, neque id blandit commodo, magna nibh interdum nisi, nec volutpat mauris eros pellentesque augue. Vivamus et augue non tortor commodo facilisis. Pellentesque tristique metus in lorem. In sit amet magna. Pellentesque dignissim orci eget est. Quisque feugiat. Duis nulla justo, mollis vel, venenatis ut, dapibus non, lorem. Integer metus. Ut vestibulum tortor id leo.

Nam egestas lacus at eros. Nulla facilisi. In hac habitasse platea dictumst. Duis dapibus mattis pede. Aenean porttitor, nulla sit amet ultricies adipiscing, mauris tortor tempus dui, quis sollicitudin erat sem sed quam. Aenean hendrerit molestie purus. Integer dolor. Cras faucibus neque at eros. Integer dapibus elit et urna. Donec sodales pede vitae odio. Proin tincidunt accumsan mi. Sed commodo, est ut scelerisque dapibus, enim nunc fringilla augue, rutrum rhoncus elit felis ut nisi. Nam dignissim diam nec lorem. Aliquam vitae quam et nunc auctor aliquet. Aenean nunc eros, fringilla at, iaculis quis, posuere quis, risus. Phasellus aliquam ullamcorper quam.

Integer ultrices. Vestibulum porttitor eros eu augue. Cras ultricies ultrices metus. Cras metus ligula, lobortis eget, bibendum ut, fringilla vel, augue. Sed at lacus et nisl placerat cursus. Etiam ante. Fusce sit amet arcu eu metus sollicitudin pretium. Proin id tortor vel est pellentesque interdum. Nam quis nunc ac ligula egestas ornare. Suspendisse sodales. Nullam tortor magna, feugiat sit amet, sodales sed, iaculis eu, nisl. Donec sit amet tellus. Nulla facilisi. Donec odio ligula, molestie ut, pulvinar vel, laoreet id, dui. Nullam elementum fermentum tellus. Vivamus pulvinar, odio ac pulvinar tincidunt, erat ligula semper sem, quis interdum risus est nec neque.

In quis augue consectetuer nulla tincidunt porta. Phasellus nunc. Praesent vitae ligula. Morbi volutpat mauris ac mauris. In eu leo eget lectus imperdiet convallis. Donec accumsan arcu sagittis eros. Aliquam a purus. Suspendisse potenti. Maecenas eu nisl. Maecenas pharetra. Nulla facilisi. In in sapien. Praesent rhoncus, est non commodo eleifend, neque metus imperdiet ligula, sit amet tincidunt velit velit vitae lacus. Sed pede justo, ultricies at, fermentum vitae, tempus in, felis.

Quisque congue, orci in interdum sollicitudin, massa orci volutpat libero, non placerat turpis lectus eget ipsum. Phasellus gravida tincidunt massa. Nulla eros. Curabitur vitae felis id libero fermentum hendrerit. Sed tellus. Donec nec odio. Proin tristique euismod magna. Duis ultrices, est non sollicitudin varius, leo pede molestie neque, et sagittis pede lectus ac arcu. Etiam molestie nisi vel erat. Ut dapibus accumsan quam. Fusce in elit. Vestibulum metus nibh, consectetuer ac, rhoncus quis, mattis at, sapien. Morbi id quam. Vestibulum sollicitudin dui non turpis. Sed quis enim. Maecenas blandit libero eget odio. Sed facilisis congue sapien. Vivamus eu pede. Pellentesque neque nunc, sollicitudin sed, condimentum vel, varius sed, nibh. Aliquam sed tortor.

Curabitur id mauris vitae diam lobortis porttitor. Vestibulum imperdiet. Mauris elit leo, pulvinar at, cursus tempus, blandit at, dolor. Vestibulum eu arcu. In hac habitasse platea dictumst. Morbi non metus ac dui accumsan consectetuer. Mauris vehicula. Integer accumsan lorem nec tellus. Suspendisse adipiscing. Aenean lectus lacus, dictum eu, adipiscing ut, lobortis in, sapien. Sed pede.

Quisque a felis nec neque varius posuere. Morbi porta orci ac est ullamcorper auctor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus accumsan viverra eros. Morbi pede diam, adipiscing et, sollicitudin et, adipiscing vel, mi. Pellentesque magna lectus, scelerisque id, gravida eget, fringilla sed, massa. Duis velit sapien, gravida a, imperdiet ut, tempor gravida, nunc. Aliquam erat volutpat. Quisque lacus dolor, fringilla ac, eleifend vel, tempor vitae, velit. Fusce viverra. Morbi vestibulum arcu sed erat.

Baz

Now, if you click the back button in Firefox 2+, the browser returns to the top of the document where location.hash == "". In Safari 3, however, clicking the back button takes the browser to #foo which then results in a redirect back here.


Weston Ruter, Shepherd Interactive
May 2008