我有以下代码:
jQuery(document).ready(function($) {
$('.tab-title').on('click', function(e) {
window.location.hash = $(this).attr('href');
e.preventDefault();
var _self = $(this);
$('.tab').removeClass('active');
_self.parent().addClass('active');
});
});
Run Code Online (Sandbox Code Playgroud)
和我的PHP
<div class="tab active">
<a href="<?php the_field('service_name');?>" class="tab-title"><?php the_field('service_title'); ?></a>
</div>
<div class="tab-content">
<h2><?php the_field('service_title'); ?> </h2>
<p><?php the_field('service_desc'); ?></p>
<p><?php the_field('service_area');?></p>
</div>
Run Code Online (Sandbox Code Playgroud)
网站网址: mysite.com/services/marketing/#internet
问题是网站网址中包含的(#)。是否可以从网址中删除它?
尝试这个:
history.pushState("", document.title, window.location.pathname);
Run Code Online (Sandbox Code Playgroud)
已编辑
如果您只想#
从网址中删除,请尝试以下代码:
history.pushState({}, document.title, location.href.replace('#', "/"));
Run Code Online (Sandbox Code Playgroud)
pushState()方法
pushState()具有三个参数:状态对象,标题(当前被忽略)和(可选)URL。让我们更详细地检查这三个参数:
状态对象:状态对象是一个JavaScript对象,它与pushState()创建的新历史记录条目相关联。每当用户导航到新状态时,都会触发popstate事件,并且该事件的state属性包含历史记录条目的状态对象的副本。
状态对象可以是任何可以序列化的对象。由于Firefox将状态对象保存到用户的磁盘上,以便用户重新启动浏览器后可以将其还原,因此我们对状态对象的序列化表示施加了640k个字符的大小限制。如果将序列化表示形式大于此状态的状态对象传递给pushState(),则该方法将引发异常。如果您需要更多空间,建议您使用sessionStorage和/或localStorage。
查看此以获得更多信息History_API