我正在实施,如果我刷新页面,它应该使以前选择的选项卡(保留选定的选项卡)处于活动状态。所以我创建一个简单的html页面并添加一些jQuery。
但是,如果我手动更改URL像file:///home/2.html#news
到file:///home/2.html#home
更改URL不会更改选项卡
它改变页面的内容只,但不会改变标签上,被选中。 。
这是我的代码。
<body>
<ul>
<li id="first"><a href="#home">Home</a></li>
<li id="second"><a href="#news">News</a></li>
<li id="third"><a href="#contact">Contact</a></li>
<li id="forth"><a href="#about">About</a></li>
</ul>
<p id="home">
home section
</p>
<p id="news">
news section
</p>
<p id="contact">
contact section
</p>
<p id="about">
about section
</p>
</body>
<style>
p{
display: none;
}
:target {
display:block;
border: 2px solid #D4D4D4;
background-color: #e5eecc;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
if(localStorage.getItem("active_state") == null){
activeStateId = "first";
}
else{
activeStateId = localStorage.getItem("active_state")
}
$('#'+activeStateId).addClass('active');
$('li').click(function(){
$('.active').removeClass('active');
$(this).addClass('active');
localStorage.setItem("active_state", $(this).attr('id'));
});
});
</script>
可能需要在服务器上运行该页面。 localStorage是域特定的,当你使用文件协议时可能甚至不可用(尽管如此)。如果你还没有设置本地主机服务器,很容易做到,而且有很多种方法可以运行一个......所有这些都很容易研究。 Web开发很少使用文件协议完成,因为还有其他限制,例如没有ajax – charlietfl
感谢@charlietfl的回答。但我怎么能通过创建一个简单的HTML来做到这一点。 – TheVinspro
@TheVinspro你可能不能。我认为有一个标志可以启动Chrome,它可以消除对文件协议的一些限制,但一般来说,最好是使用本地服务器,正如charlietfl所建议的那样,或者使用自动开发的开发工具,就像WebStorm – hlfrmn