如何使用JavaScript自动替换浏览器地址栏中的`url`:from / en / services / to / en / #services?

如何用JavaScript自动替换浏览器
address bar
中的
url
来自  company.com/en/
services/
到      company.com/en/
#services
? 示例:当我在浏览器地址栏中输入url company.com/en/services/并单击“开始”时,会自动看到company.com/en/#services 在没有浏览器刷新且没有重定向的情况下,有没有办法用hash url /#services替换真正的url / services /? jQuery有一些解决方案吗?     
已邀请:
您无法使用Javascript更改当前页面的URL。您只能像这样更改哈希值(不会导致刷新):
window.location.hash = '#services';
所以,当你在页面
company.com/en/
然后点击某个东西时,你可以设置
window.location.hash
。例如,它可以更改为
company.com/en/#anything_you_set
。唯一的另一种方法是做Pekka建议并重新加载页面。 如果您希望他们键入url并将其更改为哈希,那么您将不得不查找URL重写(至少对于ASP.NET和IIS)。如果您使用的是IIS7,则可以使用URL重写模块。 如果您使用的是apache,则可以阅读此URL重写教程。     
你可以这样做:
 $(document).ready(function() {
     window.document.location.href = 'company.com/en/#services'
 });
    
我会去:
<script>
document.replace("/en/#services");
</script>
<meta http-equiv="refresh" content="0;url=/en/#services" />
/en/services/
Document.replace(url)将使浏览器加载新页面,旧页面将不在历史记录中,因此当用户回击时,它们不会陷入循环。 meta捕获没有JS的人。 我不认为你不能用服务器端重定向可靠地做到这一点,因为许多浏览器(和HTTP规范)只考虑哈希客户端,因此它不能在重定向中存活。     
我在http://www.asual.com/jquery/address/找到了解决方案。     

要回复问题请先登录注册