【发布时间】:2014-08-29 17:51:23
【问题描述】:
history.js 在我的网站上,在支持 HTML5 的浏览器中完美运行。单击 URL 时,它会执行 ajax 调用,并在完成时将状态保存到历史记录中。我使用函数 update_content() 淡入新内容。
在 HTML4 浏览器上,我只希望网站将 URL 视为普通 URL 并跳过 AJAX。我希望 history.js 有一个方法或函数可以调用来检测浏览器。伪代码如下。
$(document).on('click', 'a[data-type="content"]', function(event) {
// pseudo code
if(History.html4() ) { return; }
event.preventDefault();
var href = $(this).attr('href');
$.get(href, function(data) {
var new_data = $(data).siblings('#main_wrapper').html();
// update page with the new data!
update_content(new_data);
// add an item to the history log
History.pushState({ html: new_data }, event.target.textContent, event.target.href);
});
});
我只包含了 html5 history.js,所以它不会尝试将 # 放在 URL 中。
history.js 中是否有方法或函数可以用来检测当前浏览器是否为 HTML4 浏览器,所以我知道将链接视为正常?有没有更好的方法来做到这一点?
我不想安装像modernizr这样的插件,除非我必须这样做。
【问题讨论】:
-
什么?您的实际问题并不完全清楚。
-
@sphanley 哎呀。清理完毕!
-
“知道重定向”是什么意思?你什么时候重定向,到哪里?
-
@sphanley 我添加了伪代码来帮助表示。如果是 HTML4 浏览器,则将链接视为普通链接。如果是 HTML5 浏览器,更新 pushstate 并淡入内容。
标签: javascript browser history.js html4