戯言

つらつらと気づいたことを書いていきます。人狼とか。

dwr.utilとDWRUtil


DWRのサンプルコードを掲載している解説サイトを見ていると、setValue等の書き方が2パターンあることに気付きました。

dwr.util.setValue("id", bean.id);
DWRUtil.setValue("id", bean.id);

この2つに何か違いがあるのかなと思って、DWRのソースを眺めてみると、こんな記述が見当たりました。
/**
* Declare an object to which we can add real functions.
*/
if (dwr == null) var dwr = {};
if (dwr.util == null) dwr.util = {};
if (DWRUtil == null) var DWRUtil = dwr.util;

6行目にあるように、結局dwr.utilはDWRUtilに置き換えられているので、全く同じみたい。

エラー:このオブジェクトではサポートされていない操作です。


IEで、JavaScriptでstart()という名前の関数を作成して実行すると、

  エラー:このオブジェクトではサポートされていない操作です。

というエラーが出ます。
Firefoxでは出ません。

原因を特定するのに、かなり時間がかかりました。
名前をstartから別の名前に変えれば解決します。
startは予約語でもないのに、なぜエラーになるのだろう。恐るべし、IE。

javascriptでformをsubmitする方法


formをsubmitする際に、HTMLでは実現できずに、JavaScriptからsubmitしたい場合がある。
たとえば、コールバック関数内でsubmitしたい場合などです。

そんなときは、JavaScriptのsubmit()が使えます。

DWRにはJavaScriptのライブラリが付属しており、dwr.util.byId('form')などで、formのエレメントが取得できるので、
dwr.util.byId('form').submit();
でOK。