1

在 FireFox 中,我在正文的末尾有这个 jQuery:

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

头中有很多 js 文件需要全部加载才能正常工作。所以我把我的电话放在一个 document.ready 事件中。它不起作用。IE 工作正常。

如果我发出警报('');在我调用 $.getScript 之前它可以工作。

脚本尚未加载似乎有问题?

我认为 Document.ready 在所有脚本都已加载并准备就绪后被触发。

谢谢,伊恩

4

3 回答 3

9

document.ready在加载 DOM 后触发。你可以试试这个:

$(window).load(function() {
    // will execute once all scripts and images are finished loading
});
于 2009-12-06T17:34:47.513 回答
3

您不一定需要为此使用 jQuery。

只需具有如下的 onload 功能:

<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

编辑

jQuery 也可以通过以下代码做到这一点。为了避免不必要的冗余代码,我建议先尝试一下。

$(window).load(function() {
    JavascriptFunctionName();
});
于 2009-12-06T17:43:10.950 回答
0

您可以尝试使用head.js 之类的东西来指定执行顺序,同时仍然利用并行加载。

于 2011-11-17T16:39:27.620 回答