在将脚本附加到body之前检查jQuery插件依赖项

时间:2015-03-06 15:08:05

标签: jquery plugins magnific-popup

我正在开发一个jQuery插件,它使用另一个插件 - 大胆的弹出窗口(http://dimsemenov.com/plugins/magnific-popup/)。

因此,当我初始化我的插件时,我需要在DOM中搜索任何大型脚本(css或js),以防用户已经使用此插件。如果我找不到它,那么我将jc脚本后的巨型css附加到head标签和js文件。一切都相当直接。但我想知道的是,这是否是最好的方法呢?

我可以预见一些问题,例如检测可能不适用于我的插件的旧版本或修改版本的宏大脚本。或者用于我的插件的magnific实例与用户的magnific实例冲突。

因此可能会非常麻烦。但除了开发我自己的单独的灯箱,类似于我的插件的巨大(我不想做),我无法看到任何其他方式。

1 个答案:

答案 0 :(得分:0)

假设您的插件已经加载后,用户添加了依赖插件,您可以在插件中执行此操作(伪代码):

if ('function' === typeof jQuery.fn.magnific) // or whatever the plugin is called
{
// plugin is already loaded
}
else
{
// plugin NOT loaded
}

对于css,你可以在头部加载的样式表中进行dom搜索,前提是你知道了depednency插件的css url(或者甚至是它的一部分)

例如

(伪代码,未测试):

var isCSSLoaded = $('head').children('link').filter(function(){ return /magnific.css$/.test(this.href); }).length > 0;