<script>
if (!sessionStorage.in_document_with_fragment_url_4)
sessionStorage.in_document_with_fragment_url_4 = true;
else
delete sessionStorage.in_document_with_fragment_url_4;
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
function documentURLHash()
{
var index = document.URL.lastIndexOf("#");
if (index == -1)
return "";
return document.URL.substring(index);
}
function hashChanged()
{
alert("Hash changed to " + documentURLHash() + " which is interesting because we shouldn't get a hashchange event in this test.");
}
function loaded()
{
if (sessionStorage.in_document_with_fragment_url_4) {
alert("First load complete. URL's current hash is " + documentURLHash());
history.replaceState(null, null, "#foo");
alert("After replaceState, the URL's current hash is " + documentURLHash());
var rect = document.getElementById("clickanchor").getBoundingClientRect();
eventSender.mouseMoveTo(rect.left + rect.width / 2, rect.top + rect.height / 2);
eventSender.mouseDown();
eventSender.mouseUp();
} else {
alert("Second load complete. URL's current hash is " + documentURLHash());
if (window.testRunner)
testRunner.notifyDone();
}
}
</script>
<body onhashchange="hashChanged();" onload="loaded();">
This page uses history.replaceState() to add #foo to its URL. Then click the second link, which has an empty href and should take you back to the original URL without the #foo.<br>
<a id="clickanchor" href="">Click here to return to the original page with the original url</a>
</body>