2

Mootools、jQuery、Twitter Bootstrap を備えた Joomla 30 を使用していますが、それぞれをオフにすることができます。

ブートストラップが存在するかどうかを確認する必要があります。

moo と jq については、次のことができます。

if (typeof jQuery != 'undefined') {  

// do stuff
}

しかし、Bootstrap が存在するかどうかを確認するにはどうすればよいでしょうか。そして、mootools または純粋な js no libs でどのようにチェックするのでしょうか?

4

3 に答える 3

2

ブートストラップは決定的な変数をグローバル名前空間にリークしないため、これはブートストラップではかなり困難です (たとえば、jQuery をチェックするよりも)。あなたができることは、(a)最初にjQueryをチェックし(ブートストラップがそれに依存しているように見えるため)、次に次のいずれかです。

a) $("link") を反復してattr("href").indexOf("/bootstrap.")>=0を確認するか、*$("script") を反復してattr("src"を確認します.indexOf("/bootstrap.")>=0 . もちろん、これはこれを確認するための非常に非科学的な方法です。(注: このチェックでは jQuery を使用しますが、ブートストラップの jQuery 依存性に従って問題ないはずです)

b) 別の - おそらくより科学的な - アイデアは、個々の機能の存在を確認することです。たとえば、($.fn.modal && $.fn.affix && $.fn.typeahead && ...)を確認します。これにより、偽陽性 (開発者が同じ名前の他のプラグインを使用している場合) や、開発者がブートストラップ機能のカスタムの組み合わせを使用している場合は偽陰性が発生する可能性があります。

もう 1 つのオプションは、「.form-horizo​​ntal」や「.pre-scrollable」などの典型的な CSS クラスを一時要素に割り当て、プログラムでランタイム スタイルをチェックすることによってチェックすることです。ただし、これは少し難しくなる可能性があり、開発者がスタイルをカスタマイズしている場合は、誤検知/誤検知が発生する可能性もあります。

ですから、簡単な答えはないと思います...

于 2012-10-11T11:38:40.693 に答える
0

ボディタグを編集できますか?次に、のようなデータ属性を追加して、data-bootstrap="1"それが存在するかどうかを確認したり、必要に応じて値をに変更したりすることも0できます。

于 2012-10-11T11:44:13.997 に答える
0

誰かがより良い解決策を持っている場合、私は解決策に資金を提供していると思います

これは mootools domready 内にあります

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

//  BS is not here 

}

jQuery.fn.tooltip
のような他のブートストラップ関数を確認できます。これは、すべてのプラグインが 1 分のファイルに含まれているため、ブートストラップの Joomla 3.0 バージョンに固有であると述べたように、

于 2012-10-11T11:41:54.527 に答える