2011-07-10 30 views
3

在我的自定义JS代码文件中,我使用了各种插件,例如JQuery的Masonry插件。但是,我不在每个页面或主页面文件级别都包含插件(有些是,有些则没有),但是我在每个页面上都包含了自定义文件。因此,如果缺少Masonry插件,我的JS文件中的代码将发出错误。如何检查某个JS文件是否包含在网页中?

如果有人能与溶液答复如何:

  1. 检查,如果某些JS插件是引用(含),只有运行代码,然后,
  2. (可选),包括在运行时,如果该文件它缺失。

我有它使用jQuery和JQuery UI工作,因为它们都引入到类DOM structu(jQuery和jquery.ui对象),但也有其他插件的类似收藏夹的脚本中,forementioned砌体等。

回答

5

而不是检查是否一个特定的JavaScript文件已经“列入”,我只是检查,如果你需要一个名为foo功能,你需要的功能可用(即,只需沿着typeof foo == 'undefined'的方向行事,看看它是否存在......)。

+0

接受这一个,因为它更通用,即测试其他脚本与jQuery没有连接 – mare

3

你试图做什么可能是一个坏主意,但无论如何,这里是如何确定给定的插件是否已被定义。在jQuery中他们只是namespaces to the jQuery scope

if(!jQuery().somePlugin) { 
    // the plugin is not loaded => load it: 
    jQuery.getScript('/url_of_the_plugin', function() { 
     // the plugin is now loaded => use it 
    }); 
} 
2

如果类或方法的定义,在您的情况您只能检查:

if (typeof($.fn.masonry) == 'undefined') ... 

无论如何,我会建议,包括在每个页面每个脚本,压缩成一个文件。下载和解析可能不需要的代码的代价通常远低于多个HTTP请求的代价。

相关问题