首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制History.js使用散列URL回退

强制History.js使用散列URL回退
EN

Stack Overflow用户
提问于 2012-02-08 16:09:07
回答 1查看 3.9K关注 0票数 4

是否可以强制History.js - https://github.com/browserstate/History.js/ -在支持HTML5 5/历史API的浏览器中使用散列URL?

这仅用于本地测试,因此,如果需要的话,修改History.js源代码是可以的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-01 14:17:55

为了测试目的,我也想做同样的事情,最后在jquery.history.js库中更新了下面的行。

()原版:

代码语言:javascript
复制
m.emulated={pushState:!Boolean(a.history&&a.history.pushState&&a.history.replaceState&&!/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i.test(e.userAgent)&&!/AppleWebKit\/5([0-2]|3[0-2])/i.test(e.userAgent)),hashChange:Boolean(!("onhashchange"in a||"onhashchange"in d)||m.isInternetExplorer()&&m.getInternetExplorerMajorVersion()<8)}

Hack解决方案:

代码语言:javascript
复制
m.emulated={pushState:true,hashChange:true}

我使用的是HTML4+HTML5捆绑的小型化代码,但这一行对应于history.js未压缩文件中的第269行。如果您使用的是不同的版本,相应的部分如下:

():原版

代码语言:javascript
复制
History.emulated = {
pushState: !Boolean(
window.history && window.history.pushState && window.history.replaceState
&& !(
(/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i).test(navigator.userAgent) /* disable for versions of iOS before version 4.3 (8F190) */
|| (/AppleWebKit\/5([0-2]|3[0-2])/i).test(navigator.userAgent) /* disable for the mercury iOS browser, or at least older versions of the webkit engine */
)
),
hashChange: Boolean(
!(('onhashchange' in window) || ('onhashchange' in document))
||
(History.isInternetExplorer() && History.getInternetExplorerMajorVersion() < 8)
)
};

Hack解决方案:

代码语言:javascript
复制
History.emulated = {
    pushState: true,
    hashChange: true
    };
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9197048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档