JS实现修改地址栏的URL

使用场景:

如我的项目中,我的页面访问会启动一个后台应用,但是如果不小心刷新的话就会再次启动这个应用会出现bug,之前别的应用自定义了一个变量来作为一个锁,如果上锁则返回错误,但是这次这个应用由于一些原因无法或者逻辑上不应该在接口返回的时候上锁

尝试方案:

尝试了在windows.open的时候使用参数将地址栏锁定,但是手机浏览器上无法实现

window.open(url,'_blank','menubar=no,fullscreen=1,toolbar=no,resizable=no,location=no,status=no');

最终解决方案:

使用history来修改会话记录以达到不刷新页面的情况下修改地址栏

<!DOCTYPE html>
<html>
<head>
    <title>URL更改示例</title>
</head>
<body>
    <h1>当前页面</h1>
    <button onclick="changeUrl()">更改URL</button>

    <script>
        function changeUrl() {
            // 更改地址栏的URL为'/page2'
            history.pushState({page: 2}, 'Page 2', '/page2');
        }
    </script>
</body>
</html>

{page: 2} 是一个状态对象。这个对象可以包含任何你想要存储的与新历史记录条目相关的 JavaScript 数据。这个状态对象的主要用途是,当用户导航回这个条目时,你可以通过 window.history.state 属性访问它。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值