jQuery-如何检查页面上可用的javascript?

jQuery-如何检查页面上可用的javascript?,javascript,jquery,Javascript,Jquery,在使用$.getScript动态加载.js文件的html页面上 稍后,如果我想检查是否加载了一个特定的.js文件。如何做到这一点 我可以使用filename.js进行检查吗?或者我必须检查该文件中的对象/函数/变量吗 谢谢各位的回答。你们建议使用回调函数、全局变量等。但问题是,我在公司环境中工作,其中一个corporate.js加载另一个.js(我正在尝试检测的那个)。我不仅无法修改corporate.js,也无法控制它何时更改。我希望有一种方法可以知道页面上加载了哪个.js文件。我想一种方法是

在使用$.getScript动态加载.js文件的html页面上

稍后,如果我想检查是否加载了一个特定的.js文件。如何做到这一点

我可以使用filename.js进行检查吗?或者我必须检查该文件中的对象/函数/变量吗


谢谢各位的回答。你们建议使用回调函数、全局变量等。但问题是,我在公司环境中工作,其中一个corporate.js加载另一个.js(我正在尝试检测的那个)。我不仅无法修改corporate.js,也无法控制它何时更改。我希望有一种方法可以知道页面上加载了哪个.js文件。

我想一种方法是设置一些全局布尔值(或其他值):

并在
$中设置它们。getScript
的回调:

$(document).ready(function() {
    $.getScript("/some/script.js", function(){
      fooLoaded = true;
    });
    if(fooLoaded) {
        ...
    }
});
也就是说,我认为一般来说,在成功回调中加载脚本时,最好执行需要执行的操作。

全局对象

var loadedFiles = {};
$.getScript('filename.js');
loadedFiles['filename.js'] = true;

// later...

if (loadedFiles['filename.js']) {
  // Do stuff...
}
如果存在该JS文件特有的对象,那么可以,您也可以检查是否存在对象/函数/变量


EDIT-karim79使用onSuccess方法的方法更可靠,尽管您仍然可以在全局对象中保持结果的名称空间。

在正在加载的脚本中触发一些事件,以通知父脚本已加载该脚本。将信息存储到某个全局类中的某个数组中。编写一个简单的函数,它将在这个数组中找到文件名-isLoaded(filename)。

最快的测试方法是测试是否存在在加载的JavaScript文件中声明的函数或变量

if(typeof foo == "undefined") {
    //JS has loaded
} else {
    //JS has not loaded
}

我建议在回调中触发一个自定义事件,它将在脚本加载时通知您。您需要使用.bind()方法将自定义事件绑定到某个对象,并使用.trigger()从回调中触发该事件。例如,类似这样的内容:

$('body').bind('foo', function() { 
  // do something
});
$.getScript(url, function() {
  $('body').trigger('foo');
});

您可以检查元素的类型,看看它是否是一个函数,如下所示

function callClient(){
    if (typeof myTestFunction == 'function') {
        myTestFunction();
    } else {
        alert("myTestFunction function not available");
    }
} 

以上内容摘自

如何“动态”加载js文件?通过DOM?@Mauris:question states
$向头部添加脚本标记。getScript
用于加载js文件。他指的是jQuery getScript函数
function callClient(){
    if (typeof myTestFunction == 'function') {
        myTestFunction();
    } else {
        alert("myTestFunction function not available");
    }
}