zoukankan      html  css  js  c++  java
  • 使用history.replaceState 修改url 不跳转

    history.replaceState(null,null,this.urlR);  //关键代码

    history.replaceState是将指定的URL替换当前的URL

    注意:用于替换掉的URL必须是同域的

    示例:

    先保存三个页面

    goto1.html

    [html] view plain copy
     
    1. <!DOCTYPE html>  
    2. <html lang="en">  
    3. <head>  
    4.     <meta charset="UTF-8">  
    5.     <title>goto1</title>  
    6. </head>  
    7. <body>  
    8.     <h1>这是goto1</h1>  
    9.     <href='goto2.html'>去2</a>  
    10. </body>  
    11. </html>  


    goto2.html

    [html] view plain copy
     
    1. <!DOCTYPE html>  
    2. <html lang="en">  
    3. <head>      
    4. <meta charset="UTF-8">      
    5. <title>goto2</title>  
    6. </head>  
    7. <body>      
    8. <h1>这是goto2</h1>      
    9. <href='goto3.html'>去3</a>  
    10. </body>  
    11. <script>  
    12. history.replaceState({}, "goto1", "goto1.html");//将该页面的url替换为goto1.html,而不刷新页面  
    13. </script>  
    14. </body>  
    15. </html>  



    
    
    
    
    
    

    goto3.html

    [html] view plain copy
     
    1. <pre name="code" class="html"><!DOCTYPE html>  
    2. <html lang="en">  
    3. <head>      
    4. <meta charset="UTF-8">      
    5. <title>goto3</title>  
    6. </head>  
    7. <body>      
    8. <h1>这是goto3</h1>      
    9. </body>  
    10. </html>  
    
    
    
    
    
    
    
    
    
    

    先从goto1点击链接进入goto2,goto2点链接进入goto3;

    此时点击浏览器的后退键应该返回到goto2,然而由于我们已经用

    history.replaceState({}, "goto1", "goto1.html");将goto2的url历史记录换成goto1;

    所有从goto3点击后退直接返回到了goto1页面;这里的goto1也可以换成所有你想要用户返回的页面

    奉上个人封装的一个控制返回小函数

    [javascript] view plain copy
     
    1. var url='goto1';  
    2. var param=new Object();  
    3. param.userid='123';  
    4. param.status='1';//最后得到path=goto1.html?userid=123&status=1 ;  
    5. function changeBackUrl(url,param){  //url表示链接地址  
    6.  if(typeof(param)=='object'){   
    7. param=JSON.stringify(param).replace(/{|}|"|'/g,'').replace(',','&').replace(/:/g,'=');   
    8. }else{   
    9. try{ param=param.toString().replace(',','&').replace(/:/g,'=').replace(/"|'/g,''); }catch(e){''}   
    10. }   
    11. var path=+url+".html?"+param; history.replaceState(null, null, path);   
    12. }  
  • 相关阅读:
    向量的内积和外积
    软件姿态解算
    PLC与外接按钮开关接线方法图解
    关于三极管处于临界饱和状态的分析
    C语言中的volatile——让我保持原样
    C语言异或运算在程序设计中的妙用
    各种转PDF
    javax.mail发送邮件功能
    MySQL总结
    idea永久破解
  • 原文地址:https://www.cnblogs.com/qiao20/p/7423157.html
Copyright © 2011-2022 走看看