zoukankan      html  css  js  c++  java
  • js修改url参数,无刷新更换页面url

    一、js修改地址栏URL参数

        function changeURLPar(destiny, par, par_value) {
                var pattern = par + '=([^&]*)';
                var replaceText = par + '=' + par_value;
                if (destiny.match(pattern)) {
                    var tmp = '/\' + par + '=[^&]*/';
                    tmp = destiny.replace(eval(tmp), replaceText);
                    return (tmp);
                }
                else {
                    if (destiny.match('[?]')) {
                        return destiny + '&' + replaceText;
                    }
                    else {
                        return destiny + '?' + replaceText;
                    }
                }
                return destiny + '
    ' + par + '
    ' + par_value;
            }

    destiny是目标字符串,比如是http://www.huistd.com/?id=3&ttt=3 
    par是参数名,par_value是参数要更改的值,调用结果如下: 
    changeURLPar(test, 'id', 99); // http://www.huistd.com/?id=99&ttt=3 
    changeURLPar(test, 'haha', 33); // http://www.huistd.com/?id=99&ttt=3&haha=33 

    二、无刷新更换页面url

     var url = document.URL,   //获取当前页面的网址信息
         URL;
     var num = url.indexOf('#');  //获取#在的位置信息
        if (num){
               URL = url.substring(0,num);  //截取网址信息
               history.pushState(null,null,URL);  //将网址设置
          }
    方法:window.history.pushState(state, title, url)
    • state:一个与添加的记录相关联的状态对象,主要用于popstate事件。该事件触发时,该对象会传入回调函数。也就是说,浏览器会将这个对象序列化以后保留在本地,重新载入这个页面的时候,可以拿到这个对象。如果不需要这个对象,此处可以填null
    • title:新页面的标题。但是,现在所有浏览器都忽视这个参数,所以这里可以填空字符串。
    • url:新的网址,必须与当前页面处在同一个域。浏览器的地址栏将显示这个网址。
     
  • 相关阅读:
    jquery--blur()事件,在页面加载时自动获取焦点
    jquery三级联动
    工具集
    兼容各个浏览器:禁止鼠标选择文字事件
    jquery 事件委托(利用冒泡)
    小功能1:多种方法实现网页加载进度条
    JavaSE| 泛型
    SSM整合
    Redis数据库 02事务| 持久化| 主从复制| 集群
    Hadoop| MapperReduce02 框架原理
  • 原文地址:https://www.cnblogs.com/ziyoublog/p/9776764.html
Copyright © 2011-2022 走看看