window.location.hash 属性怎么使用???
看sencha-touch-1.1.1源码的时候发现,他们对浏览器的历史记录控制是用window.location.hash,搜了一下发现在ajax应用里的确有这样的用法。但是搜到的文章里也没具体说点击返回的时候,window.location.hash改变事件具体是怎么处理?自己捣鼓了半天也没弄出来。。T_T
先把代码贴出来吃晚饭继续~
<!DOCTYPE html><html><head><title> window.location.hash属性介绍 </title><script>function selectPanel(panel){window.location.hash = '#' + panel;var xmlhttp = new XMLHttpRequest();xmlhttp.onreadystatechange = function () {if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {document.getElementById('panel').innerHTML = xmlhttp.responseText;}}var newtarget = 'http://localhost/hash/action.php?' + "a=" + panel + '&h' +Math.random() * 10000000000000000;xmlhttp.open("GET", newtarget, true);xmlhttp.send();}document.addEventListener('hashchange', hashchange, false);function hashchange(){var hash; if(!window.location.hash) return '';hash=window.location.hash; alert(hash);window.location.hash=hash;//调整地址栏地址,使前进、后退按钮能使用 switch(hash){case "#search":selectPanel("search");break; case "#advsearch": selectPanel("advsearch");break; case "#admin":selectPanel("admin");break; default://selectPanel("search");}}</script></head><body><div id="panel">Welecome :)</div><ul><li><a href="#search" onclick="selectPanel('search')">#search</a></li><li><a href="#advsearch" onclick="selectPanel('advsearch')">#advsearch</a></li><li><a href="#admin" onclick="selectPanel('admin')">#admin</a></li></ul></body></html><?php$a = $_GET['a'];switch($a){case 'search':echo 'search panel';break;case 'advsearch':echo 'advsearch panel';break;case 'admin':echo 'admin panel';break;}exit;var hash; hash=(!window.location.hash)?"#search":window.location.hash; window.location.hash=hash; //调整地址栏地址,使前进、后退按钮能使用 switch(hash){ case "#search": selectPanel("pnlSearch"); //显示普通搜索面板 break; case "#advsearch": case "#admin": }