dou*_*ack 2 internet-explorer browser-history
我目前(很高兴)使用jquery将ajax请求函数绑定到非IE浏览器中的window.onpopstate事件.但是,IE从未触及我的doAjax功能.
// Bind a function to the popstate event to execute ajax requests
// this allows request to occur on back/fwd browser navigation
window.onpopstate = doAjax;
Run Code Online (Sandbox Code Playgroud)
任何人都知道是否有办法使IE 8/9以某种方式玩得很好?
我在已经抵达的解决方案是结合两者onpopstate和onhashchange所需的处理程序.
// Popstate: load ajax
window.onpopstate = handlePageWipe;
// And onhashchange for IE
if( jQuery.browser.msie ) window.onhashchange = handlePageWipe;
Run Code Online (Sandbox Code Playgroud)
我正在使用History jquery库更新url,因为我对页面进行了ajax更改.不幸的是,并且可以预见,IE还没有赶上,似乎没有办法改变JS的URL.历史可以追溯到在IE中更新url的哈希状态,所以这最初的目标是将url状态更改绑定到IE中的处理程序.
当然这会打开另一种蠕虫病毒,因为我现在必须处理网址更改和哈希更改.好吧,好吧......
编辑: 正如@linus指出的那样,我们应该慈善并避免浏览器检测,以便为IE提供改革的机会.