首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用javascript history.back()在Safari中失败..如何让它跨浏览器?

在JavaScript中,history.back()方法用于导航到历史记录中的上一页。然而,在某些浏览器(如Safari)中,这个方法可能会失效。为了让history.back()方法在不同的浏览器中都能正常工作,可以尝试以下方法:

  1. 使用window.location.href
代码语言:javascript
复制
window.location.href = document.referrer;
  1. 使用window.history.go()
代码语言:javascript
复制
window.history.go(-1);
  1. 使用window.navigator.userAgent检测浏览器类型,并针对不同浏览器使用不同的方法:
代码语言:javascript
复制
if (navigator.userAgent.indexOf('Safari') !== -1 && navigator.userAgent.indexOf('Chrome') === -1) {
  window.location.href = document.referrer;
} else {
  history.back();
}

这样可以确保history.back()方法在不同的浏览器中都能正常工作。

关于云计算,腾讯云提供了一系列的产品和服务,以帮助用户快速构建和部署各种应用程序。这些产品和服务包括:

  1. 云服务器(CVM):提供可靠、稳定、安全、高性能的计算服务,支持多种操作系统和自定义镜像。
  2. 对象存储(COS):提供可靠、安全、高可用的存储服务,支持多种文件格式和访问方式。
  3. 数据库服务(TencentDB):提供可靠、稳定、安全、高性能的数据库服务,支持多种数据库类型。
  4. 内容分发网络(CDN):提供可靠、高效、安全的内容分发服务,支持多种传输协议和加速技术。
  5. 移动应用与游戏解决方案:提供一站式移动应用和游戏开发、发布和运营服务。
  6. 人工智能与大数据:提供机器学习、深度学习、自然语言处理等多种人工智能服务,以及大数据分析和处理服务。
  7. 物联网通信:提供可靠、安全、高效的物联网通信服务,支持多种通信协议和设备接入。
  8. 网络安全:提供可靠、高效、安全的网络安全服务,包括DDoS防护、安全扫描、安全防护等。

腾讯云的这些产品和服务可以帮助用户快速构建和部署各种应用程序,并提供可靠、高效、安全的云计算服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Browser 对象(一、history)

> function returnBack(){ history.back(); } 通过调用history.back()方法加载当前URL浏览器历史列表的前一个...URL 注意:浏览器的历史列表必须存在你访问的URL(例如:页面刚打开,浏览器历史列表只有当前一个URL,你现在加载他的前一个或者后一个,甚至前两个或者后两个都不会有效果),代码才会执行,否则没有效果...但是他会出现一个很严重的问题(由于页面没有重新加载,浏览器URL历史每次下一页后是不会新添加的URL,因为只是局部刷新,所以不会添加新的URL,这就导致了,浏览器的返回上一页功能不能使用),pushState... HTML 文件, history.pushState() 方法向浏览器历史添加了一个状态。...JavaScript调用history.back()、history.forward()、history.go()方法).

87410

HTML 面试要点:History 和 Hash 路由方式

# 为什么要使用路由 越来越多的应用使用 Ajax 请求数据,浏览器 URL 不会发生任何变化。同时,浏览的页面内容在用户下次使用 URL 访问时将无法重新呈现,使用路由可以很好地解决这个问题。...单页面 web 网页,单纯的浏览器地址改变,网页不会重载,如单纯的 hash 网址改变网页不会变化,因此路由主要通过监听事件,并利用 JavaScript 实现动态改变网页内容,有以下实现方法: hash...() history.go(-1); // 相当于 history.back() history.go(0); // 相当于刷新当前页面 History.pushState() 用于历史添加一条记录...不需要是可以填 null title 指标题,但多数浏览器不支持,建议传空字符串 url 新的网址,必须与当前页面处于同一个域,不指定的话则为当前路径,如果设置一个域网址会报错 const data...,或者使用 JavaScript 调用 history.back() 、 history.forward()、 history.go() 方法,才会触发该事件 该事件只针对同一个文档,如果浏览历史的切换导致加载不同的文档

77020

域资源共享的使用

前言 页面中常常会有需要域通信的需求实现,我们知道浏览器的同源策略是不允许不同域之间的相互通信的(这里不深究域的定义及如何才算域),比如a.com有b.com想要的数据,那么b.com页面中发送ajax...域资源共享(Cross-Origin Resource Sharing)是W3C的一项规定,规定了浏览器,基于XMLHttpRequest对象的域请求通信的原理,基本上保持了原有对象的用法。...本文主要介绍如何发起一个域请求和如何在服务器端支持CORS。...兼容性: Chrome 3+ Firefox 3.5+ Opera 12+ Safari 4+ Internet Explorer 8+ 发起一个域请求 第一步新建XMLHttpRequest对象 function...如果服务器对preflight请求直接返回HTTP 200,不包含任何CORS指定的头部,那么这个域请求就会失败,触发onerror事件。

1.4K60

八种方式实现域请求

前端开发我们经常会遇到域请求的情况,处理域请求方式很多,特整理如下: 浏览器的同源策略 首选,域是由于浏览器端的同源策略限制所得来。...浏览器的同源策略,出于防范站脚本的攻击,禁止客户端脚本(如 JavaScript)对不同域的服务进行站调用(通常指使用 XMLHttpRequest 请求)。...)是数据格式 JSON 的一种“使用模式”,可以网页从别的网域要数据。...需要注意的是我们必须要保证所有的脚本执行完才发送 MessageEvent,如果在函数执行的过程调用了,就会后面的函数超时无法执行。...避免该错误,可以Safari浏览器勾选 开发菜单 => 停用域限制。或者只能使用服务器端转存的方式实现,因为Safari浏览器默认只支持CORS域请求。

1.6K41

再谈location与history之跳转转态监控—router的两种实现模式

tab下产生的历史记录;详细的推荐查看:https://developer.mozilla.org/zh-CN/docs/Web/API/Historyhistory跳转使用back(),forward...(1);当前页window.history.go(0);添加和修改历史记录的条目 使用history.pushState()可以改变referrer(引用),它在用户发送XMLHttpRequest请求时...pushState()JavaScript修改浏览器URL地址栏,不刷新页面(vue、react项目服务端渲染,可以保持访问地址一致)var stateObject = {};var title = "...history.back(),history.forward(),history.go()时触发此事件,但是history.pushState();history.replaceState();时并不会触发此事件...,但事件内可以获取到state状态值各浏览器对popstate事件是否触发有不同的表现,Chrome和Safari会触发popstate事件,而FireFox不会。

2.2K10

当代 Web 的 JSON 劫持技巧

-- script contains: stealme --> Edge PoC stealing undefined variable 如果你域脚本包含 stealme,你将会看到浏览器弹出了该值的警告...我们可以使用 UTF-16BE 字符集使数组文本成为未定义的 JavaScript 变量,并使用上面的技术窃取到。唯一要注意的是,组成的字符必须形成一个有效的 JavaScript 变量。... Safari 窃取 JSON 推送 我们也很轻松地可以最新版本的 Safari 实现同样的事情。我们仅需要少使用一个 proto ,并且从代理中使用 “name” 而不是调用者。...Edge 对 fuzz 来说没什么用,原因是前面提到过的字符集嗅探,如果你文档没有使用确定的字符,他就不会使用字符编码。Chrome 对此非常宽松,因为开发者工具你通过正则过滤控制台的结果。...总结 Edge,Safari 和 Chrome 包含的错误你可以域读取未声明的变量。你可以使用不同的编码绕过 CSP 绕过并窃取脚本数据。

2.4K60

域资源共享的使用

本文作者:IMWeb 何璇 原文出处:IMWeb社区 未经同意,禁止转载 前言 页面中常常会有需要域通信的需求实现,我们知道浏览器的同源策略是不允许不同域之间的相互通信的(这里不深究域的定义及如何才算域...),比如a.com有b.com想要的数据,那么b.com页面中发送ajax请求到a.com是不允许的,相信大家都知道一些域通信的实现方法: JSON-P(安全性不好) window.name + iframe...域资源共享(Cross-Origin Resource Sharing)是W3C的一项规定,规定了浏览器,基于XMLHttpRequest对象的域请求通信的原理,基本上保持了原有对象的用法。...本文主要介绍如何发起一个域请求和如何在服务器端支持CORS。...兼容性: Chrome 3+ Firefox 3.5+ Opera 12+ Safari 4+ Internet Explorer 8+ 发起一个域请求 第一步新建XMLHttpRequest对象 function

1.1K20

HTML5学习-day02【悟空教程】

但实际上,的条件是比较苛刻的,几乎只有点击浏览器的“前进”、“后退”这些导航按钮,或者是由JavaScript调用的history.back()等导航方法,且切换前后的两条历史记录都属于同一个网页文档...使用application cache能够带来以下几点收益: 用户可以离线时继续使用 缓存到本地,节省带宽,加速用户体验的反馈 减轻服务器的负载 如何使用application cache 要使用application...chrome4+ FF3.5+ IE8+   safari4+ opera10.5+ JS操作对象 使用 local storage和session storage主要通过js操作这两个对象来实现...关于浏览器会话页面跳转时的理解,各个浏览器实现有些差异,具体表现如下: 浏览器原窗口target="_blank"window.openctrl+click域访问IE8是是是是否FF3.6是是是否否...xss攻击 容易遭受目录攻击 容易遭受DNS欺骗攻击 IndexedDB HTML5的NoSQL数据库 indexedDB为何物 使用一个技术之前,先搞清楚它是什么,这对你的理解很重要,从DB就可以看出

1.7K30

WWDC 2022:哪些是前端开发者要关注的信息?

要了解构建 Safari Web 扩展的基础知识、如何将现有扩展转换为与 Safari 一起使用,以及如何在 App Store 打包发布,可以看看这个视频讲解 https://developer.apple.com...容器查询 响应式布局布局,经常使用媒体查询(Media Queries)检测视窗的宽高,实现自元素样式的自动调整。但是一些页面设计,元素的容器尺寸发生变化时,元素的样式也需要随之变化。...「即使 Safari 没有运行,也可以发送这些通知」。 使用与其他浏览器相同的 Web 标准:Push API 和 Notifications API 以及 Service Worker。...Safari 的 Web Push 会使用和 Apple 推送相同的通知服务,该服务支持所有 Mac 和 iOS 设备上的本地推送。...然而,Subgrid 将 Grid 带到了另一个层次,使得复杂布局排列项目成为可能,而不受 HTML 结构的限制。

1.7K10

一篇文章带你了解JavaScript Window History

为了保护用户的隐私,有限制的JavaScript可以访问此对象。 history.back() - 与点击浏览器的back按钮相同。...但是,为了保护用户的隐私,JavaScript如何访问此对象存在一些限制。window.history 对象包含浏览器历史记录。...返回上一页 该history.back()方法将历史记录列表的上一个URL加载。 这与浏览器单击“后退按钮”相同。 <!...转到特定页面 可以使用history.go()方法从会话历史记录中加载特定页面。 此方法将整数作为参数,负整数历史记录向后移动,正整数历史记录向后移动。 例 <!...四、总结 本文基于JavaScript基础,介绍了如何通过window.history访问 JavaScript浏览器对象,如何获取对应网页的页数 访问网页的上一页,下一页,访问特定的页面,都做了详细的讲解

1.4K10

十大浏览器测试工具

多个平台上测试多种浏览器不但是很困难的 – 几乎不可能的,因为没有那些好的测试工具。今天,我们就为大家提供很多涉及到浏览器测试的选择,并且告诉你那些“顶级的浏览器测试工具”,你应该使用哪一个。...Browsera Browsera可以测试和报告您的网站上的浏览器布局的差异和脚本错误。 Browsera不同于其他浏览器测试服务。...这可以对快速测试所有的JavaScript环境提供一流的服务。 ? 6. Browsershots Browsershots可以为你设计的网页不同的操作系统和浏览器中进行屏幕截图。...Spoon Spoon 是一个很好的资源,它可以你实时使用最流行的浏览器测试你的网站,包括Opera,火狐,Chrome和Safari等。 不过IE浏览器是不允许的,因为微软不提供许可。 ? 9....Sauce Labs Sauce Labs 提供了一个相当独特的浏览器测试体验。并不是简单地把你的网站在不同的浏览器进行截图,而是室可以你记录你网站的实时测试效果。 ? 10.

93360

JS基础 | JavaScript 组成部分

前面一篇我们简单介绍了 JavaScipt 的历史, JavaScript 发展的前十几年时间,Nodejs 出现以前,JavaScript 主要是用于 Web 开发,也就是俗称网页或网站开发。...早期 JavaScript 只是寄生在浏览器上面的一门脚本语言,离开了浏览器什么都做不了,还需要浏览器提供的 文档对象模型DOM、浏览器对象模型BOM才能正真的工作起来。 ? 1....文档对象模型(DOM) 用户需要与网页内容和浏览器窗口互动,浏览器除了呈现内容以外,还提供了一套机制,让开发者能够使用 JavaScript 语言控制网页上的元素(HTML),称之为“文档对象模型(Document...历史记录 history 使用 history 对象接口,保存了用户浏览网页的历史,使用 history.forward() \ history.back() 与我们点击浏览器的前进后退的作用相同,浏览器控制台输入下面代码...虽然运行在目标设备上仍然是 ES5 的代码,但不影响我们使用新版本的语法。 接下来的教程,Shawn 将从 ECMAScript 最基础的语法开始讲解,欢迎关注,期待你的加入!

1.5K20

苹果 Safari浏览器新漏洞敲响站用户跟踪的警钟

通过限制一个源加载的脚本如何与另一个源加载的资源交互可以防止流氓网站运行任意JavaScript代码从另一个域(如电子邮件服务)读取数据,从而隔离潜在的恶意脚本,减少潜在的攻击矢量。...然而,Safari浏览器处理 iOS、iPadOS 和 macOS 系统Safari IndexedDB API 的方式并非如此。...每次网站与数据库交互时,都会在同一浏览器会话的所有其他活动框、选项卡和窗口中创建一个具有相同名称的新的空数据库。 这种侵犯隐私的处理方式允许了网站获取用户不同选项卡或窗口中访问的其他网站。...雪上加霜的是,如果用户是从浏览器窗口的同一选项卡访问多个不同的网站的,那么即使他使用的是Safari 15浏览器的隐私浏览模式也并不能幸免于难。...“ OSX 操作系统上,Safari 用户可以暂时切换到另一个浏览器以避免他们的数据源泄漏,可是iOS 用户没有这样的选择,因为苹果禁止其他浏览器引擎。”

70710

原 八、BOM

浏览器,window对象有双重角色,既是通过JavaScript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。...支持的浏览器:IE、Safari、Opera和Chrome screenX 和 sreenY:同上。支持浏览器:Firefox、Safari和Chrome。...Opera里的这两个属性和screenLeft、screenTop属性不对应,所以建议Opera不要使用它们。 moveTo() 和 moveBy():将窗口精确地移动到一个新位置。...IE、Firefox、Safari、Opera和Chrome,document.documentElement.clientWidth 和 document.documentElement.clientHeight...使用框架时,每个框架都有自己的 window 对象以及所有原生构造函数及其他函数的副本。每个框架都保存在 frames 集合,可以通过位置或通过名称来访问。

85250

【Java 进阶篇】JavaScript BOM History 详解

当用户浏览网页时,可以使用JavaScript的BOM (Browser Object Model)的History对象来访问浏览器的历史记录。...本篇博客,我们将围绕JavaScript的History对象创建一个案例,以详细介绍如何使用它。我们将创建一个简单的网页,允许用户浏览他们的浏览历史,并以友好的方式向基础用户解释相关内容。...什么是History对象 开始创建案例之前,让我们先了解一下History对象是什么以及它有什么作用。 History对象允许您访问用户浏览器的历史记录。...提供了以下几个主要方法和属性: back(): 回退到历史记录的上一页。 forward(): 前进到历史记录的下一页。 go(): 前进或后退指定数量的页面。...BOM还有其他有趣和强大的对象和功能,可以用于访问浏览器的不同部分。日常Web开发,了解和熟练使用这些对象将有助于改善用户体验并提供更多的交互性。

20420
领券