【问题标题】:cross-browser Onunload and Onbeforeunload ? (particularly opera 11)跨浏览器 Onunload 和 Onbeforeunload ? (尤其是歌剧 11)
【发布时间】:2011-01-13 17:39:01
【问题描述】:

我有一个表单,当表单中有数据尚未发送时,我必须在退出页面上用 alert() 通知用户。

我听说歌剧在这方面有很多问题。也就是 Opera 11,因为我只需要考虑最后一个版本。

同样,警报应该在刷新、关闭选项卡或关闭整个浏览器时显示。 最好将事件直接设置为 <form> 元素,该元素将在任何导致破坏该元素的东西上启动。

【问题讨论】:

标签: javascript forms cross-browser opera onunload


【解决方案1】:

Opera 还不支持 onbeforeunload。 Opera 的 onunload 支持不完整 - 例如,当您关闭选项卡或关闭 Opera 时它不会触发。据我所知,虽然您可以使用 onunload 在用户单击链接以导航离开带有未保存表单的页面时显示警告,但是当 unload 事件触发时,您无法阻止导航发生。

我在这里要做的是监听 onbeforeunload 事件,让它在其他浏览器中工作并等待 Opera 赶上。我不知道它是在 Opera 12 还是 13 还是 15 中,但是当实现 onbeforeunload 时,它将像在其他浏览器中一样工作。

【讨论】:

  • 另外,Mobile Safari 不支持 onbeforeunload,所以如果您有任何移动用户,那么您可能需要寻找其他解决方案。
  • onbeforeunload 现在在基于 Webkit 引擎的 Opera 15 中得到支持!
【解决方案2】:

Disable Close 还不能帮助你,因为 Opera 目前不支持 window.onbeforeunload。将来的某个版本将支持它。目前,Opera 11 没有实现它。

【讨论】:

    【解决方案3】:

    从 Opera 15 开始支持 onbeforeunload !

    【讨论】:

      【解决方案4】:

      JQuery 框架只是一种精简的 Javascript 语言,因此它完全取决于您使用的浏览器,这里没有魔法。

      【讨论】:

      • 这对这个问题有什么帮助?
      猜你喜欢
      • 2011-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多