有没有办法检查一个特定的插件是否可用?

想象一下,您正在开发一个插件,该插件依赖于正在加载的另一个插件。

例如,我想让jQuery验证插件使用dateJS库来检查给定的日期是否有效。在jQuery验证插件中,如果dateJS可用,那么最好的检测方法是什么?


当前回答

这种方法应该是有效的。

var plugin_exists = true;

try {
  // some code that requires that plugin here
} catch(err) {
  plugin_exists = false;
}

其他回答

在您选择的浏览器控制台中运行此命令。

如果(jQuery) pluginName){控制台日志(“你好”);}

如果插件存在,它会在你的控制台打印出“bonjour”作为响应。

为了检测jQuery插件,我发现使用括号更准确:

if(jQuery().pluginName) {
    //run plugin dependent code
}

我强烈建议您将DateJS库与您的插件捆绑在一起,并记录您已经完成的事实。没有什么比查找依赖项更令人沮丧的了。

也就是说,出于法律原因,您可能并不总是能够捆绑所有内容。使用Eran Galperin的答案谨慎检查插件的存在也没有坏处。

一般来说,jQuery插件是jQuery作用域中的名称空间。你可以运行一个简单的检查来查看命名空间是否存在:

 if(jQuery().pluginName) {
     //run plugin dependent code
 }

然而dateJs并不是一个jQuery插件。它修改/扩展javascript date对象,不作为jQuery命名空间添加。你可以检查你需要的方法是否存在,例如:

 if(Date.today) {
      //Use the dateJS today() method
 }

但是您可能会遇到API与本机Date API重叠的问题。

这种方法应该是有效的。

var plugin_exists = true;

try {
  // some code that requires that plugin here
} catch(err) {
  plugin_exists = false;
}