2

使用具有 Mootools、jQuery 和 Twitter Bootstrap 但每个都可以关闭的 Joomla 30。

我需要检查引导程序是否存在。

对于 moo 和 jq 我们可以做

if (typeof jQuery != 'undefined') {  

// do stuff
}

但是我们如何检查 Bootstrap 是否存在呢?我们如何使用 mootools 或纯 js 无库检查它?

4

3 回答 3

2

使用 Bootstrap(比检查 jQuery)要困难得多,因为 bootstrap 不会将明确的变量泄漏到全局命名空间中。您可以做的是(a)首先检查 jQuery(因为引导程序似乎依赖于它),然后:

a) 遍历 $("link") 以检查attr("href").indexOf("/bootstrap.")>=0和/或遍历 *$("script") 以检查attr("src" ).indexOf("/bootstrap.")>=0。现在,这当然是一种非常不科学的检查方法。(注意:此检查使用 jQuery,但根据引导程序的 jQuery-dependency 应该没问题)

b) 另一个——也许更科学的——想法是检查个体特征的存在。比如说,检查($.fn.modal && $.fn.affix && $.fn.typeahead && ...)。这可能会产生误报(如果开发人员使用具有相同名称的其他插件),如果开发人员使用了引导功能的自定义组合,甚至可能会产生误报。

另一种选择是检查典型的 CSS 类,如“.form-horizo​​ntal”和“.pre-scrollable”,方法是将它们分配给临时元素并以编程方式检查它们的运行时样式。但这可能有点困难,如果开发人员自定义了样式,可能导致误报/否定。

所以我想没有简单的答案......

于 2012-10-11T11:38:40.693 回答
0

如果有人有更好的解决方案,我想我会资助一个解决方案,请告知

这是在 mootools domready 中

if((typeof jQuery == 'function' && typeof jQuery.fn.popover == 'undefined') || (typeof jQuery == 'undefined')){

//  BS is not here 

}

我们可以检查其他引导函数,如 jQuery.fn.tooltip
,就像说这是 Joomla 3.0 版本的引导程序特有的,因为它的所有插件都在 1 分钟文件中,

于 2012-10-11T11:41:54.527 回答
0

你能编辑你的身体标签吗?然后你可以添加一个类似的数据属性data-bootstrap="1"并检查它是否存在,或者甚至在0需要时将值更改为。

于 2012-10-11T11:44:13.997 回答