добавление прослушивателя событий в сафари - PullRequest
0 голосов
/ 11 февраля 2012

Я пытаюсь добавить прослушиватель событий через 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 голосов
/ 11 февраля 2012

Пожалуйста, не используйте браузер сниффинг. Следующее является совместимым со стандартами и работает везде (если есть поддержка W3C DOM; при необходимости добавьте оболочки):

    …

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

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

…

Вопросы остаются, однако. Почему вы вообще не используете атрибут onunload элемента body? А для чего вам нужен прослушиватель событий unload? Многие люди думают , что им нужны unload слушатели, потому что они неправильно обрабатывают закрытие или имеют ошибочную идею пытаться удерживать посетителей на своем сайте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...