zoukankan      html  css  js  c++  java
  • history.back(-1)和history.go(-1)的区别

    history.back(-1):直接返回当前页的上一页,数据全部消息,是个新页面

    history.Go(-1):也是返回当前页的上一页,不过表单里的数据全部还在

    history.back(0) 刷新 history.back(1) 前进 history.back(-1) 后退

    <input type=button value=刷新 onclick="window.location.reload()">


    <input type=button value=前进 onclick="window.history.go(1)">


    <input type=button value=后退 onclick="window.history.go(-1)">


    <input type=button value=前进 onclick="window.history.forward()">


    <input type=button value=后退 onclick="window.history.back()"> 后退+刷新

    <input type=button value=后退 onclick="window.history.go(-1);window.location.reload()">

    样例:

    js6.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

    <html>
      <head>
      </head>
     
      <body>
        <a href="js7.jsp">点击</a>
      </body>
    </html>

    js7.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

    <html>
      <head>
      </head>
     
      <body>
        <a href="#" onclick="history.back(-1);return false;">返回</a>
      </body>
    </html>

    以上的例子:当没有加return false;时返回的跳转不会发生,因为当onclick执行后,接着执行的是

    href="#",即是:localhost:8080/Servlet/js/js7.jsp#,故无法发生返回的跳转。

    //<input type=button value=刷新 onclick=”window.location.reload()”>
    //<input type=button value=前进 onclick=”window.history.go(1)”>
    //<input type=button value=后退 onclick=”window.history.go(-1)”>
    //<input type=button value=前进 onclick=”window.history.forward()”>
    //<input type=button value=后退 onclick=”window.history.back()”>
    后退+刷新s
    <input type=button value=后退 onclick=”window.history.go(-1);window.location.reload()”>

    在C# Web程序中,如为页面按钮写返回上一页代码

    this.RegisterClientScriptBlock(“E”, “<script language=javascript>history.go(-2);</script>”);

    其中,history.go(-2),要写为-2,因在按钮事件触发前,已刷新一次页面,所以应是-2。

    Response.Write(“<script language=javascript>history.go(-2);</script>”);

    此处也要写为“-2”。跟直接写脚本的有所不同。


    history.back()是回上一页
    i=1
    history.go(i)去指定的某页
    如果是history.go(0)那就是刷新



    这两个属于JS代码,相当于IE的前进、后退功能。
    具体的用处就要看什么时候需要这个就用上。比如用户注册时的验证是后台验证,不符合要求的时候就可以用这个,可以最大限度保证用户少重复输入数据。
    例如:载入页面:
    function onLoadPage(){
    if(event.srcElement.tagName==”SPAN”){
    oFrame=top.window.middle.frames[2];
    oTxt=event.srcElement.innerText;
    switch(oTxt){
    case “前 进”:
    oFrame.history.go(1);
    case “后 退”:
    oFrame.history.back();
    case “刷 新”:
    oFrame.location.reload();
    }
    }
    }

    go()方法只有一个参数,即前进或后退的页面数

    如果是负数,就在浏览器历史中后退。如果是正数,就前进(这种差别就像Back和Forward按钮之间的差别)。


    因此,后退一页,可用下面的代码:

    window.history.go(-1);

    当然,window对象的引用不是必需的,也可使用下面的代码:

    history.go(-1);

    通常用该方法创建网页中嵌入的Back按钮,例如:

    <a href="javascript:history.go(-1)'>Back to the previous page</a>

    要前进一页,只需要使用正数;

    history.go(1);

    另外,用back()和forward()方法可以实现同样的操作:

    //go back one
    history.back();


    //go forward one
    history.forward();

    这些代码更有意义一些,因为它们精确地反应出浏览器的Back和Forward按钮的行为。

    虽然不能使用浏览器历史中的URL,但可以用length属性查看历史中的页面数:

    alert{"There are currently" + history.length +" pages in history.");

  • 相关阅读:
    vue引用js报错Uncaught SyntaxError: Unexpected token <
    VS Code离线安装扩展方法
    zTree、jsTree排序和简单的js数字字符串混合排序方法
    C# 如何读取匿名类型Anonymous Type的属性
    ajax使用jsonp请求方式
    VS2015 Bad Request解决方法
    C# json对象中包含数组对象时,如何存入数据库
    js 最短代码生成随机数(字符串、id)
    HDU 6395 Sequence 杜教板子题
    hdu GuGuFishtion 6390 数论 欧拉函数
  • 原文地址:https://www.cnblogs.com/lzm1989/p/6107382.html
Copyright © 2011-2022 走看看