« Ext.DataViewの使い方 | メイン | Ext.tree.TreePanelの使い方 »



ExtJSをfirebugでデバッグする便利な方法

firebugonextjs01.PNG
firebugonextjs02.PNG
firebugonextjs03.PNG
firebugonextjs04.PNG
firebugonextjs05.PNG
firebugonextjs06.PNG
firebugonextjs07.PNG
firebugonextjs08.PNG
firebugonextjs09.PNG
firebugonextjs10.PNG
firebugonextjs11.PNG
これまでにExtJSの使い方を何度かポストしていて、日本語のチュートリアルがあることもポストしましたが、チュートリアルのほとんどは英語で書かれています。ので、しっかりと読むには腰をすえなければならず、ちょこちょことtipsなんかを斜め読みしていたのですが、このページにExtJSの作りこみやデバッグを飛躍的に向上させる方法が載っていました。

javascriptのデバッグというとFireFoxプラグインのfirebugを思い浮かべます。そのとおり上記チュートリアルもfirebugを使ったデバッグです。もちろんこのブログで紹介しているExtJS関連のポストもfirebugを使ってデバッグしてはいますが、あまり使い込んでおらず適宜ブレークポイントを置いて変数なんかをウォッチする程度のものでした。知らなかったのはコンソールにスクリプトを直接書いて実行させることが出来るってことです。え・・・それって常識・・・とかドン引きされることかと思いますが、コンソールにスクリプトを直接書いて実行出来るらしいですよ!(同じことを2度言ってみました)(恥ずかしい子!)

恥ずかしい子はどうでもよいのですが、上記ページのチュートリアルを引用してキャプチャをいくつか追加しながらポストしたいと思います。
ココまで読んでいる方なら以下の資材はお持ちかと思いますが一応リンクしておきます。 firefoxをインストールしてfirebugを入れたらfirefoxでExt2.1-API Dcumentationを開きます。なぜこのページを開くのかと言いますと理由は単純でExtJSが全てロードされているためです。
開きましたら図のようにfirebugを立ち上げます。
ツール>Firebug>Open Firebugで開きます。
次にEnable FirebugをクリックしてこのExt2.1-API Dcumentationページをデバッグできる状態にします。
さらにConsoleタブをクリックして、コンソールを開きます。右ペインの複数行入力できるコンソールが開いていなければ右下のアイコンをクリックしてペインを開きます。
開いたらこのコンソールに以下のコードを入力し、RunをクリックするかCTRL+ENTERを押下します。
Ext.get(document.body).update('<div id="test"></div>');
このコードはページのdocument.bodyを取得し、そのinnerHTMLをdiv id="test"で更新すると言うものです。HTMLタブをクリックしてbodyノードを開くとinnerHTMLが<div id="test"></div>になっていることが確認できます。同時に画面からコンテンツが消えます。コンテンツは消えますが、ExtJSのライブラリはロードされたままですので、コイツを利用してスクリプトのテストが行えるんです。

ためしに、
new Ext.Panel({
    renderTo: 'test',
    width: '200px',
    title: 'My Title',
    html: 'My HTML content'
});
をコンソールにコピペ(追記)してCTRL+ENTERを押下します。すると、Ext.Panelが表示されます!
    renderTo: 'test',
というコンフィグオプションでdiv id="test"をレンダリング先としていますので、1行目は消さないでください。続けて、html: 'My HTML content'というコンフィグオプションの直後に
    ,collapsible : Boolean
を挿入してみます。地味ですが、パネルのタイトルバー右に[▲]アイコンが表示され、パネルのボディが開いたり閉じたり出来るようになりました!ということはAPI DocumentationにあるExtクラスのメソッドや、コンフィグなどがリアルタイムにどんなものなのか確認できるようになったということですね。うわーすげー便利だ。

では次にrenderTo: 'test',と言う箇所を// でコメントアウトします。
    //renderTo: 'test',
画面からパネルが消えますので,collapsible : Booleanの直後に以下のコードを挿入します。
    ,x: 100
    ,y: 100
    ,renderTo: Ext.getBody()
    ,floating: true
    ,frame: true
    ,height: 200
    ,draggable: {
        insertProxy: false,
        onDrag : function(e){
            var pel = this.proxy.getEl();
            this.x = pel.getLeft(true);
            this.y = pel.getTop(true);
            var s = this.panel.getEl().shadow;
            if (s) {
               s.realign(this.x, this.y, pel.getWidth(), pel.getHeight());
            }
        },
        endDrag : function(e){
            this.panel.setPosition(this.x, this.y);
        }
    }
すると、パネルがドラッグ&ドロップできるようになりました!
というわけで、日本語チュートリアルと全然変わりありませんが知ってるのと知らないのでは大違いなのでポストしてみました。何が一番びっくりしたのかと言いますと、このコンソールの使い方がgetfirebug.comにデカデカと載っていたことです。あーびっくりした。(しらじらしい)

[ 最近のエントリーとその関連エントリー ]


[ スポンサードリンク ]

トラックバック

このエントリーのトラックバックURL:
http://wiki.mojalog.com/cms/mt-tb.cgi/4

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年05月15日 21:06に投稿されたエントリーのページです。

ひとつ前の投稿は「Ext.DataViewの使い方」です。

次の投稿は「Ext.tree.TreePanelの使い方」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35