2012-01-06 3 views
1

DojoがUIイベントを処理するたびに、「サード・パーティ」機能を登録したり、Dojoコード・ベースを変更して自分の関数を呼び出すことは可能ですか?つまり、Dojoがイベントを処理するたびに、自分の関数を呼び出すことができます。イベントオブジェクトを関数に渡して、ページ上のすべてのユーザーアクティビティを追跡できます。 dojo.doc - - 「UIイベント」で おかげ ジェリーDojo UIイベントのトラッキング

+0

「dojo.connect」(1.7以降では 'dojo.on')を使用して、ハンドラをDOMイベントまたはウィジェットによって生成されたDojoイベントでフックできます。さらに、各ウィジェットには 'watch'関数があります。この関数を使うと、プロパティの変更を追跡するための" watch "ハンドラを追加することができます。または、最後の手段として、オブジェクト自体のイベント関数を「ハイジャック」します。 Dojoソースを変更する必要はありません。 –

+0

この質問をし、Dojoソースを変更する必要があるという事実は、おそらくCのような言語(C#やJavaなど)からJavaScriptを初めて使用したことを示しています。標準のJavaScriptでは、ライブラリソースを変更せずに他の言語では難しいアスペクト指向プログラミングのトリックがたくさんあります。 –

+0

あなたのコメントをありがとうが、私はコードベースを変更する必要があると感じる理由は、私のコメントに記載されています。 – Jerry

答えて

0

あなたの場合は、あなたは、ウィンドウのドキュメントオブジェクトを聴くことができますDOMイベントを意味するイベントバブルとして(限り泡立ちが停止されていないとして、dojo.stopEvent(event)によって):

dojo.connect(dojo.doc, "onclick", function(event) { 
    console.log(event); 
}); 

jsFiddleにタッチします。

dojox.form.Manager Tutorialを見てフォーム要素を観察することも考えられます。

+0

すべての応答をありがとう、dojo.connectアプローチを使用して私の最初の試みでしたが、イベントのバブルアップはdojo.stopEventを使用して停止することができますので、私の追跡コードで見逃されるイベントがあることを意味します。私は行方不明のイベントを持つことができないので、私が考えることができる唯一の他の解決策は、私の追跡関数呼び出しをdojoイベント処理プロセス内に置くことでした。だから私は正しい方向に私を指すことができる誰かがあったことを望んでいた私は私の追跡関数呼び出しを置くことができる道場コードベースを探し始めることでした。あなたのすべての時間、再びありがとう。 – Jerry

+0

Googleのウェブサイトヒートマップを試して、使用するトリックを見つけてください。私はソースコードを調べるためのオープンソースプロジェクトがあると確信しています。 – phusick