iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >js如何实现点击返回跳转到指定页面
  • 230
分享到

js如何实现点击返回跳转到指定页面

2023-07-04 09:07:23 230人浏览 薄情痞子
摘要

这篇文章主要介绍了js如何实现点击返回跳转到指定页面的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇js如何实现点击返回跳转到指定页面文章都会有所收获,下面我们一起来看看吧。功能描述:在浏览器中新建标签页并指定一

这篇文章主要介绍了js如何实现点击返回跳转到指定页面的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇js如何实现点击返回跳转到指定页面文章都会有所收获,下面我们一起来看看吧。

功能描述:

在浏览器中新建标签页并指定一个网址,网页加载完毕后,正常流程下是不允许点击返回的。因为当前标签页的相关历史记录是没有的,所以没有记录可以返回。

应客户要求,需要在这种情况下,给他的历史记录里添加一个链接(比如首页),这样在新打开的页面,点击返回就可以跳转到首页,让用户看到系统的各种功能,推广平台。

一、知识要点

HTML5引进了history.pushState()方法和history.replaceState()方法,它们允许你逐条地添加和修改历史记录条目。这些方法可以协同window.onpopstate事件一起工作。

 案例:
假设 http://mozilla.org/foo.html 将执行如下javascript代码:

复制代码 代码如下:

 var stateObj = { foo: "bar" }; history.pushState(stateObj, "page 2", "bar.html");

这将让浏览器的地址栏显示http://mozilla.org/bar.html,但不会加载bar.html页面也不会检查bar.html是否存在。

假设现在用户导航到了http://google.com,然后点击了后退按钮,此时,地址栏将会显示http://mozilla.org/bar.html,并且页面会触发popstate事件,该事件中的状态对象(state object)包含stateObj的一个拷贝。该页面看起来像foo.html,尽管页面内容可能在popstate事件中被修改。

如果我们再次点击后退按钮,URL将变回http://mozilla.org/foo.html  文档将触发另一个popstate事件,这次的状态对象为null。回退同样不会改变文档内容。

pushState()方法
pushState()有三个参数:一个状态对象、一个标题(现在会被忽略),一个可选的URL地址。下面来单独考察这三个参数的细节:

状态对象(state object) — 一个JavaScript对象,与用pushState()方法创建的新历史记录条目关联。无论何时用户导航到新创建的状态,popstate事件都会被触发,并且事件对象的state属性都包含历史记录条目的状态对象的拷贝。

任何可序列化的对象都可以被当做状态对象。因为FireFox浏览器会把状态对象保存到用户的硬盘,这样它们就能在用户重启浏览器之后被还原,我们强行限制状态对象的大小为640k。如果你向pushState()方法传递了一个超过该限额的状态对象,该方法会抛出异常。如果你需要存储很大的数据,建议使用sessionStorage或localStorage。

标题(title) — FireFox浏览器目前会忽略该参数,虽然以后可能会用上。考虑到未来可能会对该方法进行修改,传一个空字符串会比较安全。或者,你也可以传入一个简短的标题,标明将要进入的状态。

地址(URL) — 新的历史记录条目的地址。浏览器不会在调用pushState()方法后加载该地址,但之后,可能会试图加载,例如用户重启浏览器。新的URL不一定是绝对路径;如果是相对路径,它将以当前URL为基准;传入的URL与当前URL应该是同源的,否则,pushState()会抛出异常。该参数是可选的;不指定的话则为文档当前URL。

注意: 在 Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1) 至 Gecko 5.0 (Firefox 5.0 / Thunderbird 5.0 / SeaMonkey 2.2) 中,传入的对象使用JSON来进行序列化。从 Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)开始,对象使用结构化拷贝算法来进行序列化。这将允许更多类型的对象能够安全传入。
某种意义上,调用pushState()有点类似于设置window.location='#foo',它们都会在当前文档内创建和激活新的历史记录条目。但pushState()有自己的优势:

1、新的URL可以是任意的同源URL,与此相反,使用window.location方法时,只有仅修改 hash 才能保证停留在相同的document中。

2、根据个人需要来决定是否修改URL。相反,设置window.location='#foo',只有在当前hash值不是foo时才创建一条新历史记录。

3、你可以在新的历史记录条目中添加抽象数据。如果使用基于hash的方法,你只能把相关数据转码成一个很短的字符串。

注意pushState()方法永远不会触发hashchange事件,即便新的地址只变更了hash。

popstate事件
每当激活的历史记录发生变化时,都会触发popstate事件。如果被激活的历史记录条目是由pushState所创建,或是被replaceState方法影响到的,popstate事件的状态属性将包含历史记录的状态对象的一个拷贝。

replaceState()方法
history.replaceState()操作类似于history.pushState(),不同之处在于replaceState()方法会修改当前历史记录条目而并非创建新的条目。

当你为了响应用户的某些操作,而要更新当前历史记录条目的状态对象或URL时,使用replaceState()方法会特别合适。

 二、实现思路
1.利用popstate事件,监听点击返回事件。

2.触发事件时,判断当前页面的历史记录 是否有页面可以返回。

3.如果没有页面可以返回,则插入两条记录:

1)、指定的跳转页面。

2)、空记录。(使当前页面不发生变化)

 三、实现方法

 //返回之前没页面则返回首页    function pushHistory() {      if (history.length < 2) {        var state = {          title: "index",          url: getHttpPrefix + "index.html"        };        window.history.pushState(state, "index", location.href);        state = {          title: "index",          url: ""        };        window.history.pushState(state, "index", "");      }      //lll("history.state" + history.state)      //console.log(history.state) }

判断当前history中的记录个数,由于页面加载的时候,浏览器会自动push进一个记录。所以要判断长度是否小于2.

塞进的state对象是为了获取对应的url链接。
注意点:
第一个pushState我将跳转url放进state对象 方便跳转操作。第二个参数没有实际意义,因为现在的浏览器基本不适用这个参数。
第三个参数是会替换当前地址栏的链接的,但是页面不会发生跳转。(我之前犯了个错误,将第三个参数设置为首页链接,导致了地址栏更改为首页链接,以至于在当前页的链接 都以首页为基础进行跳转,导致页面的所有链接都跳转错误了。)

  setTimeout(function () {      pushHistory()      window.addEventListener("popstate", function (e) {        lll("popstate"+window.history.state)        if (window.history.state != null && window.history.state.url != "") {          location.href = window.history.state.url        }      });    }, 300);

这段代码放置在页面的ready事件中执行,延迟300毫秒是为了将操作滞后,防止与系统pop事件冲突。
if语句为了判断 history是否存在state对象,因为只有满足我们要求的记录才会有我们添加的state对象 所以 根据这点可以进行页面的跳转操作。这样就可以实现我们想要的效果。

关于“js如何实现点击返回跳转到指定页面”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“js如何实现点击返回跳转到指定页面”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: js如何实现点击返回跳转到指定页面

本文链接: https://www.lsjlt.com/news/344112.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • js如何实现点击返回跳转到指定页面
    这篇文章主要介绍了js如何实现点击返回跳转到指定页面的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇js如何实现点击返回跳转到指定页面文章都会有所收获,下面我们一起来看看吧。功能描述:在浏览器中新建标签页并指定一...
    99+
    2023-07-04
  • html怎么点击跳转到页面指定位置
    这篇文章主要为大家展示了“html怎么点击跳转到页面指定位置”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html怎么点击跳转到页面指定位置”这篇文章吧。  ...
    99+
    2022-10-19
  • 微信小程序如何返回箭头跳转到指定页面
    这篇文章主要介绍微信小程序如何返回箭头跳转到指定页面,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!示例:onUnload: function () { ...
    99+
    2022-10-19
  • jquery如何实现点击跳转到新页面
    本篇内容介绍了“jquery如何实现点击跳转到新页面”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!要实现 jQuery 点击跳转到新页面,我...
    99+
    2023-07-06
  • html如何跳转到指定页面
    本篇内容主要讲解“html如何跳转到指定页面”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html如何跳转到指定页面”吧! 在htm...
    99+
    2022-10-19
  • jquery如何实现点击跳转页面
    这篇文章主要介绍“jquery如何实现点击跳转页面”,在日常操作中,相信很多人在jquery如何实现点击跳转页面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jquery如何...
    99+
    2022-10-19
  • jquery怎么实现点击跳转到新页面
    jQuery (JQuery JavaScript Library) 是一个使用JavaScript编写的快速、小型、功能丰富的JavaScript库, 使得HTML文档操作、事件处理、动画效果和Ajax交互变得更加简单优雅。在Web开发中...
    99+
    2023-05-14
  • 怎么实现javascript跳转到指定页面
    JavaScript是一种广泛用于Web页面交互和动态效果的编程语言。在Web开发中,跳转到指定页面是一项常见的任务,通常在用户点击一个链接或按下一个按钮时触发。本文将介绍不同方式的JavaScript跳转到指定页面的方法。window.l...
    99+
    2023-05-14
  • html如何实现点击文字跳转到其他页面
    HTML中可以使用``标签实现点击文字跳转到其他页面。例如,要将文字“跳转到其他页面”点击后跳转到“https://www.yisu...
    99+
    2023-08-08
    html
  • php实现一个页面跳转到其它指定页面
    php实现一个页面跳转到其它指定页面 在PHP脚本代码中实现 在PHP脚本代码中实现 ...
    99+
    2023-09-05
    php 开发语言
  • vue 点击按钮 路由跳转指定页面的实现方式
    目录点击按钮 路由跳转指定页面最终效果vue跳转页面常用的方式1:router-link跳转2:this.$router.push()3:this.$router.replace()...
    99+
    2022-11-13
  • 如何使用PHP跳转到指定页面
    PHP是一款强大的编程语言,许多人都喜欢使用它来创建动态网站。在PHP中,跳转是一个非常常见的操作,它可以使用户在不同的页面之间自由地浏览。在某些情况下,你可能需要指定跳转到一个特定的页面而不是到默认的页面。这篇文章将教你如何使用PHP跳转...
    99+
    2023-05-14
    php 跳转页面
  • php如何自动跳转到指定页面
    小编给大家分享一下php如何自动跳转到指定页面,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在php中,可以利用header()函数来自动跳转到指定页面;只需要在...
    99+
    2023-06-14
  • jquery如何模仿锚点跳转到页面指定位置
    这篇文章主要为大家展示了“jquery如何模仿锚点跳转到页面指定位置”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jquery如何模仿锚点跳转到页面指定位置”这...
    99+
    2022-10-19
  • javascript如何实现点击按钮跳转页面
    这篇文章主要介绍了javascript如何实现点击按钮跳转页面,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。JavaScript有什么特点1、js属于一种解释性脚本语言;2、...
    99+
    2023-06-14
  • php如何实现点击按钮跳转页面
    要实现点击按钮跳转页面,可以使用PHP结合HTML的方式。首先,在HTML中添加一个按钮:```点击跳转```然后,将上述代码保存为...
    99+
    2023-08-25
    php
  • 如何使用Html5跳转到APP指定页面
    这篇文章主要介绍如何使用Html5跳转到APP指定页面,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.设置urlschemesurlschemes尽量设一个唯一的字符串,例如可以设为:iOS+公司英文名+ 项目工程...
    99+
    2023-06-09
  • php如何实现点击按钮后跳转页面
    本篇内容主要讲解“php如何实现点击按钮后跳转页面”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何实现点击按钮后跳转页面”吧!方法一: 使用HTML中的表单可以在HTML表单中使用sub...
    99+
    2023-07-05
  • jquery如何实现点击按钮跳转页面功能
    今天小编给大家分享一下jquery如何实现点击按钮跳转页面功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。首先,在 HTM...
    99+
    2023-07-05
  • 如何用html实现点击Button元素跳转页面
    这篇文章主要介绍“如何用html实现点击Button元素跳转页面”,在日常操作中,相信很多人在如何用html实现点击Button元素跳转页面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用html实现点击...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作