Хорошее кросс-браузерное «готовое» событие без использования jQuery? - PullRequest
6 голосов
/ 11 августа 2011

Мне нужно создать эквивалент события ready в jQuery без использования jQuery.Он должен работать на максимально возможном количестве браузеров и не может испортить обработчик body.onload (т. Е. Если набор обработчиков уже есть, функция не должна его перезаписывать).Я проверил код jQuery, но не понимаю, как он работает, потому что он использует много функций jQuery.

Есть предложения о том, как это сделать?

Редактировать: У меня нетконтроль над тем, куда будет вставлен мой код, поэтому он должен играть как можно лучше с существующим обработчиком body.onload.Это также означает, что я не уверен, что код будет вставлен внизу страницы (скорее всего, не будет).

Ответы [ 3 ]

3 голосов
/ 11 августа 2011

Самый маленький кросс-браузерный код DOMReady, когда-либо.

<html>
  <head>
    <script>
      var ready = function (f) {
        (/in/.test(document.readyState)) ?
          setTimeout('r(' + f + ')', 9) :
          f();
      };
    </script>
  </head>
  <body>
    <script>
      ready(function () {
        alert('DOM Ready!');
      });
    </script>
  </body>
</html>
1 голос
/ 11 августа 2011

Это может помочь: http://www.freelancephp.net/en/domready-javascript-object-cross-browser/

Не готовая к реализации реализация DOM

0 голосов
/ 11 августа 2011

Просто включите ваш тег <script> в самом низу. Таким образом, он будет загружаться только после завершения загрузки всего остального содержимого.

...