3

我有这个代码:

$(document).ready(function() {
    window.addEventListener('DOMContentLoaded', function() {
    var s = d.createElement('script');
    s.async = false;
    s.src = 'file.js';
    s.id = 'script';
    d.body.appendChild(s);
    });
});

$(window).load(function() {
    workwithvariablesInfilejs();
});

似乎 document.ready 先触发,然后 window.load 触发。但是,如果尝试访问 file.js 的变量,我会遇到麻烦,因为 file.js 脚本似乎是在 window.load 之后加载的。我怎样才能等到 file.js 加载?或者有没有更好的方法来组织这段代码?

4

3 回答 3

2

您可以使用 getscript 方法:http ://api.jquery.com/jQuery.getScript/ 然后在“.done”回调中调用“workwithvariablesInfilejs()”。

$.getScript("file.js")
.done(function(script, textStatus) {
  console.log( textStatus );
})
.fail(function(jqxhr, settings, exception) {
  $( "div.log" ).text( "Triggered ajaxError handler." );
});
于 2013-07-22T19:32:32.817 回答
1

改用. $(window).load();_ $(document).ready()有关更多说明,请参见此处

于 2013-07-21T22:00:29.943 回答
1

在将脚本标记附加到页面后,您可以重新编写逻辑以触发加载事件。

请参阅:如何检查异步加载的脚本是否已在 javascript 中完成加载

由于您使用的是 JQuery,因此您可以利用JQuery.getScript

于 2013-07-22T19:10:17.190 回答