我已经看到有几个网站这样做,即Facebook的聊天窗口,或Reverbnations音乐播放器,我想知道是否有人可以指点我如何实现它的任何教程?
干杯。
答案 0 :(得分:0)
您始终可以使用JavaScript检查功能并提供后备(例如location.hash或普通旧的整页刷新)。 Modernizr是一个使特征检测变得容易的框架。
也就是说,有些框架提供了使用History API的简便方法。其中一个,可以说是最突出的,是History.js,它为不支持History API的浏览器提供了跨浏览器功能和适当的回退。
There's also a plugin for History.js and jQuery可以让您'ajaxify'您的网站。
检查历史记录API支持:
if(window.history && history.pushState)
{
// History API supported.
}
else
{
// Provide fallback (location.hash, etc.)
}
使用Modernizr:
if(Modernizr.history)
{
// History API supported.
}
答案 1 :(得分:0)
为什么聊天窗口无法在导航中清除的答案:当您在Facebook上冲浪时,没有页面刷新。大多数情况下,Javascript用于更改显示的内容。
当您以编程方式更换内容以提供浏览印象时,浏览器实际上不再导航到新位置。地址栏不会改变,后退按钮也不会重做任何步骤。
这就是HTML5 history API开始的时候。它允许手动管理历史项目,这样当你浏览Facebook中的不同页面时,就会创建一个新的历史项目。这告诉浏览器启用后退按钮,单击后退按钮将触发您需要处理的事件。此外,历史记录API将允许您更改浏览器的地址栏(理想情况下,如果您实际请求该URL,则会将您带到完全相同的内容)。
虽然current browser support看起来很不错,但您可以使用location hash添加后备广告。