【发布时间】:2015-07-01 07:03:03
【问题描述】:
好的,我有一个网站,其中有几个选项卡显示不同的内容。我做了一件非常简单的事情来管理标签:
HTML:
<li id="thing1" class="tab selected"></li>
<li id="thing2" class="tab"></li>
<li id="thing3" class="tab"></li>
<div id="_thing1" class="box"></div>
<div id="_thing2" class="box hidden"></div>
<div id="_thing3" class="box hidden"></div>
JS/JQUERY:
$(".tab").on('click', function() {
$(".tab").removeClass('selected');
$(this).addClass('selected');
$(".box").addClass('hidden');
$( '#_' + $(this).attr('id') ).removeClass('hidden');
});
一切正常,但我正在尝试将历史记录添加到我的标签点击中,所以当您点击浏览器时,您会转到您访问过的最后一个标签。
我做了一些研究,我有点困惑,似乎我需要实现的很多东西与所有浏览器都不兼容。 Jquery 还没有实现与历史相关的东西。
例如:on('hashchange') 似乎并不兼容所有浏览器。
这是我开始的:
$(".tab").on('click', function() {
history.pushState({id: $(this).attr('id')}, $(this).attr('id'), '#'+$(this).attr('id'));
}
那么有什么方法可以让我在没有插件的情况下轻松实现我想要的吗?
【问题讨论】:
-
你试过通过 JS 操作浏览器历史吗?...
-
您有许多插件可供选择,例如this one。 This example 会帮助你。
-
是的,我做了,但我停止了,因为我对兼容性感到困惑。我不想做一些我需要在每个浏览器上测试并担心它会在哪个版本上运行的事情。
-
这就是我建议你使用插件的原因,因为它已经过测试了。
-
但是说真的,
hashchange得到了很好的支持总体
标签: javascript jquery push history hashchange