相关疑难解决方法(0)

单击后退按钮时是否存在跨浏览器onload事件?

对于所有主流浏览器(IE除外),onload由于后退按钮操作,页面加载时不会触发JavaScript 事件 - 它仅在首次加载页面时触发.

有人能指出我解决这个问题的一些示例跨浏览器代码(Firefox,Opera,Safari,IE,...)吗?我很熟悉Firefox的pageshow活动,但不幸的是Opera和Safari都没有实现这一点.

javascript pageload

180
推荐指数
6
解决办法
18万
查看次数

在移动Safari中按下后退按钮后,Javascript在iframe中停止执行

我有一个适用于手机的网页,其中包含一个iframe,其中包含在父目标中打开的链接.

在iOS 5.0.1上的Safari中,当用户单击链接时,然后使用后退按钮返回页面,javascript将停止在iframe中执行.

一个简单的演示来说明问题:

单击链接,确认警报并使用后退按钮.第二次单击链接时,警报将不会显示.

index.html的:

<html>
  <body>
    <iframe src="iframe.html"></iframe>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Iframe.html的:

<html>
  <body>
    <a target="_parent" onclick="alert('Click')" href="http://www.google.com">
      Link
    </a>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我对可能导致这种情况的想法不知所措.有没有人参加过这个活动?

javascript safari iframe mobile-safari ios

7
推荐指数
1
解决办法
2097
查看次数

使用移动浏览器浏览器时,如何防止从缓存中重新加载网页?

Mobile Safari使用一种特殊的缓存机制Page Cache在此),该机制基本上使当前页面保持活动状态,但是当我们导航到另一个页面时处于休眠状态。这样,当用户按下back按钮时,它可以立即以最新状态显示上一页。

这对于导航和浏览Web很有用,但是在特殊情况下,这变得很烦人,因为每次用户导航到该页面时,您可能需要获取该页面的新副本。(就我而言,我必须进入以下页面:登录名和主页)。

我完全知道,没有什么可以阻止用户打开同一应用程序的多个选项卡。我对此并不担心。

防止页面被缓存的跨浏览器的解决方案并不能帮助如Safari是保持页面打开,但无形的暂停。

window.onpageshow和处理event.persisted没有帮助,因为它似乎在浏览器不执行onpageshow某些原因事件第二次(当你按下back按钮)。

对于那些不知道onpageshow事件是什么的人请注意:Apple不鼓励使用loadand unload事件,因为使用页面缓存的概念,这些事件没有明确的意义。因此,onpageshow应该做我们期望的load事件。

javascript safari caching ios pageshow

5
推荐指数
1
解决办法
5875
查看次数

标签 统计

javascript ×3

ios ×2

safari ×2

caching ×1

iframe ×1

mobile-safari ×1

pageload ×1

pageshow ×1