2012-10-11 34 views
2

使用有Mootools,jQuery和Twitter Bootstrap的Joomla 30,但每个都可以关闭。如何检查Twitter Bootstrap是否存在?

我需要检查bootstrap是否存在。

对于哞和JQ我们可以做

if (typeof jQuery != 'undefined') { 

// do stuff 
} 

但是我们该如何检查,如果引导存在?我们如何使用mootools或纯js无libs来检查它?

回答

2

这对Bootstrap来说比检查jQuery要困难得多,因为bootstrap不会将一个权威变量泄漏到全局命名空间中。你可以做的是(一)jQuery的第一次检查(如自举似乎依赖于它),然后:

一)迭代超过$(“链接”)来检查ATTR(“HREF “).indexOf(”/ bootstrap。“)> = 0和/或遍历* $(”script“)来检查attr(”src“)。indexOf(”/ bootstrap。“)> =。现在这当然是一种非科学的方法来检查这一点。 (注意:这个检查使用jQuery,但是这应该可以根据引导程序的jQuery依赖性来确定)

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

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

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

+0

我最终检查功能,在我的情况下,他们都在1文件 – Benn

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分钟的文件中,

0

你可以编辑你的身体标签吗?然后,您可以添加像data-bootstrap="1"这样的数据属性,并检查它是否存在,或者如果需要,可以将值更改为0

+0

调整HTML不是一个重点,有很多变化我们可以做,但我认为这应该是海峡前进,因为TBS是如此广泛现在使用。 – Benn