javascript готовый документ firefox (jQuery) - PullRequest
1 голос
/ 06 декабря 2009

В FireFox у меня есть этот jQuery в конце тела:

$(document).ready(function() {
     $.getScript('LiveMapsJavascriptProvider.aspx?type=reference&value=6', init);
});

В голове много js-файлов, которые необходимо загрузить, прежде чем это сработает. Поэтому я положил свой вызов в событие document.ready. Не работает IE отлично работает.

Если я поставлю предупреждение (''); прежде чем я вызову $ .getScript, он работает.

Похоже, проблема в том, что скрипты еще не загружаются?

Я думал, что Document.ready был запущен после того, как все скрипты загружены и готовы к работе.

Спасибо, Иэн

Ответы [ 3 ]

9 голосов
/ 06 декабря 2009

document.ready срабатывает после загрузки DOM. Вы можете попробовать это:

$(window).load(function() {
    // will execute once all scripts and images are finished loading
});
3 голосов
/ 06 декабря 2009

Вам не обязательно использовать jQuery для этого.

Просто включите функцию загрузки, как показано ниже:

<body onload="JavascriptFunctionName">

Или вы можете динамически присоединить вызов функции к событию onload, как показано ниже:

function addEvent(obj, evType, fn){ 
 if (obj.addEventListener){ 
   obj.addEventListener(evType, fn, false); 
   return true; 
 } else if (obj.attachEvent){ 
   var r = obj.attachEvent("on"+evType, fn); 
   return r; 
 } else { 
   return false; 
 } 
}
addEvent(window, 'load', JavascriptFunctionName);

Вы можете встраивать вызовы функций jQuery в функцию JavascriptFunctionName.

EDIT

jQuery также способен сделать это с помощью следующего кода. Я рекомендую сначала попробовать это, чтобы избежать ненужного избыточного кода.

$(window).load(function() {
    JavascriptFunctionName();
});
0 голосов
/ 17 ноября 2011

Вы можете попробовать использовать что-то вроде head.js для указания порядка выполнения, но при этом использовать преимущества параллельной загрузки.

...