zoukankan      html  css  js  c++  java
  • javascript:history.go()和History.back()的区别

    History 对象
    History 对象实际上是 JavaScript 对象,而不是 HTML DOM 对象。
    History 对象是由 JavaScript runtime engine 自动创建的,由一系列的 URL 组成。这些 URL 是用户在一个浏览器窗口内已访问的 URL 。
    History 对象最初设计来表示窗口的浏览历史。但出于隐私方面的原因,History 对象不再允许脚本访问已经访问过的实际 URL。唯一保持使用的功能只有 back()、forward() 和 go() 方法。

    History 对象的属性
    length 返回浏览器历史列表中的 URL 数量

    History 对象的方法
    back() 加载 history 列表中的前一个 URL
    forward() 加载 history 列表中的下一个 URL
    go() 加载 history 列表中的某个具体页面


    <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()">在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();
    }
    }
    }


    打开一个jsp页面,肯定是用客户端脚本进行刷新了。
    Javascript刷新页面的几种方法:
    1 history.go(0)
    2 location.reload()
    3 location=location
    4 location.assign(location)
    5 document.execCommand('Refresh')
    6 window.navigate(location)
    7 location.replace(location)
    8 document.URL=location.href

  • 相关阅读:
    (4)ES6解构赋值-字符串篇
    (3)ES6解构赋值-对象篇
    (2)ES6解构赋值-数组篇
    (1)ES6中let,const,对象冻结,跨模块常量,新增的全局对象介绍
    MySQL中char与varchar区别,varchar最大长度是多少?
    集成学习实战——Boosting(GBDT,Adaboost,XGBoost)
    集成学习——Boosting(GBDT,Adaboost,XGBoost)
    集成学习(Random Forest)——实践
    集成学习——Bagging
    决策树实践
  • 原文地址:https://www.cnblogs.com/dafa/p/2879964.html
Copyright © 2011-2022 走看看