我正在使用history.js脚本来管理HTML5历史状态更改。我的代码在最新版本的Chrome和Firefox中运行良好,但我无法在IE9中使用它。我已经尝试过github网站提供的history.js和history.iegte8.min.js脚本。
我选择此脚本的原因是因为它遵循与正确的HTML5 API相同的语法,这意味着当用户最终进入IE10时,这意味着最小的更改。
这是代码。
<!-- Placed at the end of the document so the pages load faster -->
<script src="js/jquery-1.8.2.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<script src="js/history.iegte8.min.js"></script>
<script type="text/javascript">
$(function() {
$(window).bind('popstate', function( e ) {
var historyState = history.state;
if ( historyState ) {
loadContent(historyState.link)
} else {
// Open Business Unit Reporting folder
$('#item-2').prop('checked',true);
}
});
$('li a').click(function(e) {
var latestLink = '<li>' + getLabelHierarchy(this) + '<a href="'+$(this).attr('href')+'">'+$(this).html()+'</a></li>';
var historyList = latestLink + $('#historyList').html();
history.replaceState({link: historyList}, null, null);
});
$(window).trigger( "popstate" );
});
function getLabelHierarchy(node) {
<< code omitted >>
}
function loadContent(links) {
$('#historyList').append(links);
}
</script>
有人在IE9中使用过这个脚本吗? 任何帮助非常感谢。
答案 0 :(得分:0)
使用历史记录js时,它是大写字母H,而不是小写字母h,在处理历史记录时,您使用的是window.history,而不是history.js历史记录对象。
您需要使用getState()
var historyState = History.getState();
您还需要使用历史记录,无论您正在引用它。阅读History.js的自述文件。