Подтвердить что ты не робот

Как проверить готовность документа?

Как проверить, готов ли документ (все файлы js загружены, DOM готов) через jQuery? Есть ли какой-либо флаг?

Облицовка проблем, если некоторые из файлов не загружены полностью, и событие возникает пользователем. Я хочу проверить внутри обработчика событий.

Я использую jQuery, asp.net

4b9b3361

Ответ 1

Это не документировано, я не думаю, но если вы посмотрите на код jQuery для $(document).ready:

// If the DOM is already ready
if ( jQuery.isReady ) {
  // Execute the function immediately
  fn.call( document, jQuery );
} // ...

Таким образом, для способа, который может измениться, вы можете использовать $.isReady или jQuery.isReady.

Лучше всего использовать $(document).ready в строке. например:.

function myClickHandler(event) {
  // do stuff

  $(document).ready(function() {
    // Do this immediately if DOM is loaded, or once it loaded otherwise.
  }
}

По сути, это использует готовую функцию в качестве охранника. Вместо выражения if вы используете функцию ready. Конечно, готовая функция имеет поведение, которое будет выполняться после загрузки DOM. Если ваше поведение только хочет, чтобы что-то произошло, если оно было загружено, но никогда не делало этого, если DOM еще не загружен, то использование вышеописанного флага или настройка собственного - лучший способ. Установка собственных:

$(document).ready(function() {
  window.domIsReady = true;
}

if (window.domIsReady) {
  // do stuff
}

Создание собственного, вероятно, лучше, поскольку jQuery.isReady, похоже, не документировано и, следовательно, вероятно, не поддерживается и может быть изменено в любое время.

Ответ 2

$(document).ready(function() {
  // Handler for .ready() called.
});

Ответ 3

Это трюк?:)

То, что вы ищете, document.ready

Пример:

  $(document).ready(function() {

   alert ("document is ready!");

  });

Ответ 4

Простой вызов функции, чтобы проверить, загружена ли база.

   jQuery(document).ready(function(){ 
      alert("howdy");  
    }); 

узнайте, загружена ли она (лучше)

<script type="text/javascript">  
if (typeof jQuery == 'undefined')  
{  
    alert('not loaded'); 
}  
</script>

ДЛЯ КОРОТКИХ ОТКЛЮЧЕНИЙ: (не требуется тип:)

<script type="text/javascript">  
    if(!this.$) 
    {  
        alert('not loaded'); 
    }  
    </script> 

Ответ 6

Jquery имеет следующее:

$(document).ready(function(){ 
    alert('document ready here') 
}); 

Становится довольно распространенной практикой обернуть любой jquery, который манипулирует DOM в блоке $(document).ready(), чтобы гарантировать, что DOM все там, прежде чем продолжить.

Ответ 7

Я думаю, что ваш следующий:

$(window).load(function(){
   alert("All content has been downloaded to the web browser")  
  }); 

который я недавно сделал блог:

Ответ 8

Мысль о том, что код document.ready запускался только при загрузке документа и всех файлов. У меня никогда не было проблем с этим.

Если бы у меня была проблема, я бы либо поместил var во все необходимые файлы, и проверил, складываются ли они, размещает весь код в одном файле.

Простите меня за то, что вы не опубликовали окончательный ответ

Ответ 9

Вы ищете случайное событие window.onload случайно? Он запускается, когда загружено все на странице (включая скрипты, изображения, таблицы стилей).

function doStuff() {
    alert("The DOM and everything inside have loaded");
}
window.onload = doStuff; 

Смотрите также: addLoadEvent.

Ответ 10

На странице jquery 1.8.x.ready() api кажется, что привязка функции обработчика событий с использованием следующего синтаксиса устраняет проблему:

$(document).ready(handler);

Функция "handle" будет вызвана, даже если уже было запущено событие "ready".