ども、小堤です。
まぁ、相変わらずブログは間、開くわけです。
タイトル通り、Ext JS,Ext Core,Sencha Touchの判別方法についてです。
まぁ、通常は判別しなくていいのかもしれませんが、どれも、グローバルスコープに、Extオブジェクトが作られるわけですし。
3つのうち、どれが読み込まれてるの?っていうのを判別する方法ですね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<span style="color:#990000;">// SenchaTouch有効フラグ</span> <span style="color:#000099;">var</span> isSenchaTouch = Ext.TouchEventManager ? <span style="color:#000099;">true</span> : <span style="color:#000099;">false</span>; <span style="color:#990000;">// Ext Core有効フラグ</span> <span style="color:#000099;">var</span> isExtCore = (!isSenchaTouch && !Ext.ComponentMgr) ? <span style="color:#000099;">true</span> : <span style="color:#000099;">false</span>; <span style="color:#990000;">// Ext JS有効フラグ</span> <span style="color:#000099;">var</span> isExtJS = (!isSenchaTouch && !isExtCore) ? <span style="color:#000099;">true</span> : <span style="color:#000099;">false</span>; Ext.applyIf(Ext, { isSenchaTouch : isSenchaTouch, isExtCore : isExtCore, isExtJS : isExtJS }); |
Sencha TouchにはExt.TouchEventManagerが実装されていて、Ext JS/ Ext Coreにはありません。なので、これがあればSencha Touch。
次に、Ext Coreは、Ext JSのコンポーネントモデルが実装されていないので、Ext.Componentクラスが存在しません。なので、Sencha Touchじゃなくて、Ext.Componentが存在しなければExt Core。
どちらでもない場合は、Ext JSというわけです。
利用方法は、Ext.isSenchaTouchなどを参照すればOKです。
本当は、クロージャーで実装してRead Onlyとかがいいんでしょうが、そこらへんは、Omega Trick側でやってますので。
あくまで、判定部分ということで。
では。
Ext JS / Ext Core / Sencha Touchの判別