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:新的网址,必须与当前页面处在同一个域。浏览器的地址栏将显示这个网址。
     
  • 相关阅读:
    python 杂谈
    python: list转字符串
    dataframe
    time模块
    python 调试器
    BAT机器学习面试1000题系列(41-45题)
    join()函数
    value_counts()
    模型评估
    04flask_scripts使用
  • 原文地址:https://www.cnblogs.com/ziyoublog/p/9776764.html
Copyright © 2011-2022 走看看