<html> <body> <div> This test checks to make sure the hashchange event is fired __ansynchronously__ when the value of location.hash changes.<br/> It assumes there is a hashchange event for each location.hash change.<br/> <br/> </div> <div id="msg"></div> </body> <script language="javascript"> <!-- var hashChanging = false; var failed = false; var msgs = []; var lc = window.testRunner; if (lc) { lc.dumpAsText(); lc.waitUntilDone(); } function updateHash (hash) { msgs.push('updateHash("' + hash + '")'); location.href = hash; }; function loadHandler () { hashChanging = true; updateHash('#foo'); updateHash('#bar'); hashChanging = false; }; var cnt = 0; function hashChangeHandler () { msgs.push('hashChangeHandler()'); if (hashChanging) { failed = true; } if (++cnt == 2) { msgs.push('', failed ? "FAILURE" : "SUCCESS"); document.getElementById("msg").innerHTML = msgs.join('<br/>'); if (lc) { lc.notifyDone(); } } }; window.addEventListener('load', loadHandler, false); window.addEventListener('hashchange', hashChangeHandler, false); //--> </script> </html>