`

解决Safari下子页面执行history.back导致整个页面后退问题

阅读更多
当页面A包含子页面B,在页面B中执行history.back(-1)或history.go(-1)会引起整个页面后退,网上查询并测试后,以下代码有效解决了该问题:

function goBack(){
	//解决Safari中后退功能的兼容问题
	if (navigator.userAgent && /(iPhone|iPad|iPod|Safari)/i.test(navigator.userAgent)) {
        window.location.href = window.document.referrer;
	} else {
		window.history.back(-1);  //根据需要可使用history.go(-1);
	}
}


参考博文:http://www.cnblogs.com/qingliuyu/archive/2012/05/03/2481305.html
分享到:
评论

相关推荐

    仿safari历史记录效果

    `pushState()`和`replaceState()`方法可以在不重新加载页面的情况下修改当前历史记录条目,`back()`和`forward()`则用于导航到历史记录中的前一个或后一个页面。 2. `pushState()`:这个方法允许开发者添加新的历史...

    JavaScript_在演示中用作伪造safari式web浏览器窗口的方法.zip

    如果要实现类似Safari的前进和后退功能,可以维护一个浏览历史栈,并使用`history.pushState`和`history.back`或`history.forward`方法。 此外,为了提供更真实的用户体验,开发者可能还会关注浏览器特有的行为,...

    js 禁用浏览器的后退功能的简单方法

    禁用浏览器后退功能的基本思路是在当前页面执行`history.forward()`操作,从而在历史记录中添加一个新的条目。这样,当用户尝试使用后退按钮时,实际上会返回到当前页面而不是真正的前一个页面。 #### 3.2 具体实现...

    js实现页面跳转重定向的几种方式

    `window.history.back()`方法会让浏览器后退到前一个页面。如果传入参数 `-1`,则表示回退一步。例如: ```javascript alert("返回"); window.history.back(-1); ``` 这行代码会在弹出提示框显示"返回"后,如果...

    HTML5 History API 实现无刷新跳转

    HTML5的History API是现代Web开发中一个重要的进步,它允许开发者在不重新加载整个页面的情况下改变浏览器的历史记录和URL,从而实现平滑的页面导航和无刷新跳转。这个特性对于创建单页应用程序(SPA)和提升用户...

    JS浏览器BOM常见操作实例详解

    - `history.back()`:相当于浏览器的后退按钮,回退到上一个页面。 - `history.forward()`:则相当于浏览器的前进按钮,前进到下一个页面。 `window.navigator`对象包含了有关用户浏览器的信息,虽然这些信息可能被...

Global site tag (gtag.js) - Google Analytics