美文网首页
如何在不刷新页面的情况下改变URL

如何在不刷新页面的情况下改变URL

作者: 缺月楼 | 来源:发表于2019-12-03 09:48 被阅读0次

    主要有两种方式

    第一种
    • 改 window.location.hash 优点是:没有任何的BUG
      小栗子 :
    <button id="x">x</button>
    <button id="y">y</button>
    <div id="动态区域"></div>
    <script>
      x.onclick = function () {
        // 动态区域.innerText = 'xxxxxxxxxxx'
        window.location.hash = 'x'
      }
      y.onclick = function () {
        window.location.hash = 'y'
      }
      // x.onclick = function () {
      //   // alert('1')
      //   window.location.hash = "wangyx"
      // }
      //点击当前按钮 动态展示当前hash及内容
      window.onhashchange = function () {
        var hash = window.location.hash
        展示内容(hash)
      }
    //当hash为空的时候 默认展示 x的内容 当前连接 hash被复制也会展示当前内容 
      var hash = window.location.hash
      if (hash === '') {
        window.location.hash = 'x'
      } else {
        展示内容(hash)
      }
    
      function 展示内容(hash) {
        if (hash === '#x') {
          动态区域.innerText = 'xxxxxxxxxxx'
        } else if (hash === '#y') {
          动态区域.innerText = 'yyyyyyyyyyyy'
        }
      }
    
    第二种

    window.history.pushState()
    优点: 更优雅 。缺点:刷新就会 404 解决方式 :让后端支持模糊匹配的路由
    小栗子 :

    <button id="x">x</button>
    <button id="y">y</button>
    <div id="动态区域"></div>
    <script>
      x.onclick = function () {
        window.history.pushState('', 'x页面', '/URL-demo-2.html/x')
      }
      y.onclick = function () {
        window.history.pushState('', 'y页面', '/URL-demo-2.html/y')
      }
    </script>
    

    相关文章

      网友评论

          本文标题:如何在不刷新页面的情况下改变URL

          本文链接:https://www.haomeiwen.com/subject/kxzqgctx.html