向safari添加事件监听器

时间:2012-02-11 01:02:58

标签: javascript safari

我正在尝试通过JavaScript为Safari浏览器添加一个事件监听器,因为它显然无法识别窗口的卸载事件。到目前为止,我有:

function init()
{
//add unload event handler for safari
if (navigator.userAgent.toLowerCase().indexOf("safari")!=-1) {
    bodyElt = document.getElementsByTagName("body")[0];
     if (bodyElt) {
      bodyElt.addEventListener("unload", onUnloadHandler, false);
    }
}
...

1 个答案:

答案 0 :(得分:0)

请不要使用浏览器嗅探。以下是符合标准的,并且无处不在(如果有W3C DOM支持;必要时添加包装器):

    …

    <script type="text/javascript">
      function bodyLoad()
      {
        document.body.addEventListener("unload", onUnloadHandler, false);
      }
    </script>
  </head>

  <body onload="bodyLoad()">
    …
  </body>

…

但问题仍然存在。您为什么不首先使用onunload元素的body属性?那你需要unload事件监听器做什么?许多人认为他们需要unload听众,因为他们没有正确处理关闭,或者有误导性的想法试图让访问者留在他们的网站。