2007/09/27(Thu) 12:51:03 編集(投稿者)
■No8287 (向井 さん) に返信
> 向井と申します。
>
> Webフォームで発生したイベントを自動的にログ出力する方法はないでしょうか。
>
クリックの履歴を取るだけなら、
JavaScript で、
function initialize() {
var os = document.getElementsByTagName("input");
for (var i=0;i < os.length;i++) {
switch (os[i].type.toLowerCase()) {
case "button":
//既存のクリックイベントよりも先に行う必要
//あるので多少工夫が必要かも。
os[i].attachEvent("onclick", function() {
var arr = [];
arr.push(this.name);
arr.push(this.id);
arr.push(this.value);
arr.push(createSeaser2AjaxEventParameter(this));
clickEventHistoryByAJAX(arr.join("&"));
}
}
}
}
function createSeaser2AjaxEventParameter(o) {
//AbstractAction クラスの doAjax() 呼び出し規約に則った
//フォームリクエストパラメータの生成と設定
}
function clickEventHistoryByAJAX(param) {
xmlhttp.open("http://xxx/?" + param, xx, true);
xmlhttp.send(null);
}
みたいにして、
AbstractAction クラスに doAjax 追加して、
ログ出力の記述すればいいのではないかと。
他にも Ajax 使っているなら、サブクラス
のdoAjax はオーバーライドになりますね。
入り口で、super.doAjax(param);
してから作業すればいいのではないかと考えます。
# Java な書き方で申し訳ないのですが・・・