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 + '\n' + par + '\n' + 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:新的網址,必須與當前頁面處在同一個域。瀏覽器的地址欄將顯示這個網址。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2024 CODEPRJ.COM