使用iframe后 浏览器后退不能使用!如何解决!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用iframe后 浏览器后退不能使用!如何解决!相关的知识,希望对你有一定的参考价值。
比如:A页面嵌入了一个iframe,在a页面有一个后退按钮代码 window.history.go(-1) 没反应,浏览器的后退按钮也变灰掉了,不能用。
谢谢!
<a href="" title="" target="_seft">链接</a>追问
这样不行的哦!
追答你把你做的网页打包发给我,我帮你看下行吗?没有什么隐私吧。你私信我,把你的联系方式给我,我加你。
在移动 Safari 中按下后退按钮后,Javascript 停止在 iframe 中执行
【中文标题】在移动 Safari 中按下后退按钮后,Javascript 停止在 iframe 中执行【英文标题】:Javascript stops executing in iframe after back button is pressed in mobile safari 【发布时间】:2012-02-01 10:39:32 【问题描述】:我有一个适用于手机的网页,其中包含一个 iframe,其中包含在父目标中打开的链接。
在 iOS 5.0.1 上的 Safari 中,当用户单击链接,然后使用后退按钮返回页面时,javascript 停止在 iframe 内执行。
一个简单的演示来说明问题:
单击链接,确认警报并使用返回按钮。第二次单击该链接时,警报将不会显示。
index.html:
<html>
<body>
<iframe src="iframe.html"></iframe>
</body>
</html>
iframe.html:
<html>
<body>
<a target="_parent" onclick="alert('Click')" href="http://www.google.com">
Link
</a>
</body>
</html>
我想不出可能是什么原因造成的。有人遇到过这个吗?
【问题讨论】:
【参考方案1】:我遇到了同样的问题。似乎 iPad 的 Safari 对页面进行了快照,当您使用后退按钮返回该页面时,它会加载该快照并且 javascript 代码没有被执行。
好像和这个问题有关: http://www.mac-forums.com/forums/internet-networking-wireless/257631-safari-ipad-back-button-generates-old-info.html
非常烦人。我还没有找到解决办法。
【讨论】:
【参考方案2】:这是一个 Webkit 错误:Location and other objects are dysfunctional after a document gets restored from [back/forward] cache
Adding an empty unload
handler seems to avoid the problem in iOS 4 but not iOS 5.
【讨论】:
【参考方案3】:查看Problems with Page Cache in iOS 5 Safari when navigating back / unload event not fired的答案。
对我有用的答案是执行以下操作:
<body onunload="">
...
<script type="text/javascript">
if ((/iphone|ipod|ipad.*os 5/gi).test(navigator.appVersion))
window.onpageshow = function(evt)
// If persisted then it is in the page cache, force a reload of the page.
if (evt.persisted)
document.body.style.display = "none";
location.reload();
;
</script>
【讨论】:
仅供参考-如果您将其应用于 iframe 内的页面,则此方法不起作用,它必须位于托管 iframe 的整个页面上。或者,可能是因为我的 iframe 确实嵌入在另一个 iframe 中。是的,我正在使用第三方组件。 是的,这肯定需要在包含 iframe 的页面上。以上是关于使用iframe后 浏览器后退不能使用!如何解决!的主要内容,如果未能解决你的问题,请参考以下文章
解决 iframe 后退不是主页面后退(浏览器 history)问题
用iframe后 点后退按钮时总是在潜套框里后退,如何让整个父页面整体后退呢?