2012-10-11 66 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