【发布时间】:2010-09-06 15:30:42
【问题描述】:
我为当地的一所社区大学做一些小的编程和网络工作。工作包括维护一个非常庞大且破坏灵魂的网站,该网站由 VBScript、javascript、Dreamweaver 生成的杂乱无章的大杂烩和各种骗子多年来说服他们购买的附加组件的集合组成。
几天前,我接到一个电话“该网站正在为使用 Safari 的人锁定!”好的,第一步下载Safari(v3.1.2),第二步上网。一切似乎都运行良好。
长话短说,我终于找出了这个问题,它与 Safari 的后退按钮有关。该网站使用了一个花哨的 javascript 菜单,该菜单适用于我尝试过的所有浏览器,包括 Safari,这是第一次。但在 Safari 中,如果您点击页面外的链接,然后点击后退按钮,则菜单不再起作用。
我做了一个精简的网页来说明原理。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>Safari Back Button Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body onload="alert('Hello');">
<a href="http://www.codinghorror.com">Coding Horror</a>
</body>
</html>
加载页面,您会看到警告框。然后点击页面外的链接并点击后退按钮。在 IE 和 Firefox 中,您会再次看到警告框,而在 Safari 中则不会。
经过一番激烈的谷歌搜索后,我发现其他人也有类似的问题,但没有真正令人满意的答案。所以我的问题是,当用户点击后退按钮后,如何让我的页面在 Safari 中像在其他浏览器中一样工作?
如果这是一个愚蠢的问题,请轻描淡写,javascript 对我来说有点新。
【问题讨论】:
-
嘿,汽车,你知道了吗?我已经在 iPad 和 iPod 上尝试了以下所有解决方案,当客户端按下后退按钮时,我无法让 Safari 运行 JavaScript。 (当我在桌面上使用 Safari 时,我可以得到它,但我无法让它与移动版本的 Safari 一起使用。这是你使用过的东西吗?)
-
查看问题Mobile Safari back button的答案
-
onload() 事件在 Safari 中未触发后退按钮被点击
-
Sal 我最终还是明白了这一点。我用 jquery 的“document.ready”而不是“onload”来调用我的函数。
标签: javascript safari