JWL JavaScript 振る舞い

JWL JavaScript™ 振る舞い によって、共通機能を実行するイベント・ハンドラーをタグに追加します。 例えば、onblur イベントの起動時に タグの値を検証する入力タグの onblur ハンドラー に、JWL 振る舞いを追加できます。

振る舞いの使用

振る舞いが呼び出されると、 指定された JavaScript と ともに、1 つ以上の JWL アクションが実行されます。 JWL アクションは、 「フィールドの使用不可化」、「フィールドの非表示」、「アラート・ボックスの表示」 などといった、JavaScript の 定義済みブロックになります。 また、いくつかの振る舞い (特に、検証に関する振る舞い) では、フィールドと関連付けられる CSS クラス (および既存の機能およびアクション) を切り替えることができます。

JWL 振る舞いは、オブジェクトのイベント・ハンドラーに対して、置き換えではなく追加を行います。 例えば、オブジェクトの onblur ハンドラー に JavaScript 関数を 与えて、さらに onblur 関数に振る舞いを与えることができます。 イベント・ハンドラーと振る舞いは、 ともにイベントの起動時に実行されます。 イベント・ハンドラー、振る舞い、 および振る舞いによって実行されるアクションが 起動される順序については、以下で説明します。

振る舞いを使用するには、次のようにします。
  1. 振る舞いを適用するタグを、ページ内に追加します。 例えば、次のようにします。
    <input id="form1:text1" type="text" value="fish" class="inputText" />
  2. DOM オブジェクトに振る舞いを与えます。 例えば、次のようにします。
    <script>
        hX_5.addBehavior("form1:text1", "onfocus", new hX_5.JSFBehaviorGeneric("action:show", "target:form1:tooltip1"));
    </script>
これで、オブジェクトに振る舞いが与えられました。 onfocus イベントがオブジェクトで起動すると、JWL 一般振る舞いが 呼び出され、form1:tootop1 が表示されます。

振る舞いの作成と検索を行う hx 呼び出し

それぞれの振る舞いは、Javascript コンストラクターを 使用して構成され、addBehavior 呼び出しを介してページに追加されます。

hX_5.addBehavior("id", "eventname", new hX_5.JSFBehaviorName(attributes)); 各部の意味は次のとおりです。

id

振る舞いが付加される HTML タグの ID。 本文タグに付加するには、#body を使用します。 文書の場合には、#document を使用します。

eventname

振る舞いを呼び出す HTML イベント名。 例えば、onclick、onkeydown などです。 それぞれの振る舞いは、一部の HTML イベント名のみを サポートしています (例えば、 マウス・クリックの振る舞いを、 キーボード・イベントに バインドすることはできません)。 場合によっては、 この振る舞いを複数の HTML イベントに バインドする必要があります。 このような場合には、「疑似」イベント名が使用されます。 例えば、マウス・クリックの振る舞いは、 複数のイベントにバインドされますが、 そのイベント名は「onmouse」になります。

name

JSF コンポーネントの名前。

属性

コンマで区切られた属性のリスト。 各属性は、属性名と値から成る引用符付きストリングになっており、 コロンで区切られています (例: "label:MyLabel")。

注: 複数の振る舞いを、DOM オブジェクトに与えることができます。

特定の振る舞いオブジェクトを取得するには、次のようにします。

var o = hX_5.getBehaviorById("id", "name", "eventname"); 各部の意味は次のとおりです。

id

振る舞いが付加される HTML タグの ID。 本文タグに付加するには、#body を使用します。 文書の場合には、#document を使用します。

name

JSF コンポーネントの名前。

eventname

振る舞いを呼び出す HTML イベント名。 例えば、onclick、onkeydown などです。 それぞれの振る舞いは、一部の HTML イベント名のみを サポートしています (例えば、 マウス・クリックの振る舞いを、 キーボード・イベントに バインドすることはできません)。 場合によっては、 この振る舞いを複数の HTML イベントに バインドする必要があります。 このような場合には、「疑似」イベント名が使用されます。 例えば、マウス・クリックの振る舞いは、 複数のイベントにバインドされますが、 そのイベント名は「onmouse」になります。

returns

コンバーターの JavaScript オブジェクトの型 (数値、日付/時刻、またはストリング)。 変換できない場合は、null が戻され、lastError が設定されます。

DOM オブジェクトに与えられた振る舞いオブジェクトを すべて取得するには、次のようにします。

var a = hX_5.getBehaviorsById("id"); 各部の意味は次のとおりです。

id

振る舞いが付加される HTML タグの ID。 本文タグに付加するには、#body を使用します。 文書の場合には、#document を使用します。

returns

コンバーターの JavaScript オブジェクトの型 (数値、日付/時刻、またはストリング)。 変換できない場合は、null が戻され、lastError が設定されます。

振る舞いにおける共通 API 呼び出し

振る舞いの属性を変更するには、次のようにします。

b.setAttribute("arg"); 各部の意味は次のとおりです。

b

振る舞いオブジェクト。

arg

JSF 属性/値のストリング。

振る舞いの属性を取得するには、次のようにします。

var x = b.getAttribute("argname"); 各部の意味は次のとおりです。

b

振る舞いオブジェクト。

argname

属性名を含むストリング。

returns

コンバーターの JavaScript オブジェクトの型 (数値、日付/時刻、またはストリング)。 変換できない場合は、null が戻され、lastError が設定されます。

実行の順序

ある振る舞いがユーザー提供の JavaScript 関数を実行できる場合、 その関数は JWL アクションの前に実行されます。 関数が false を戻すと、アクションは実行されません。 同様に、関数が false を戻した場合には、どの CSS スタイルも適用されません。 Actions も同じように振る舞います。アクションが false を戻した場合、追加アクションは実行されません。

この振る舞いの他に JavaScript イベント・ ハンドラーが提供されている場合 (例えば、onblur イベント・ ハンドラーにスクリプトが与えられていて、 同じ onblur イベント・ハンドラーに 振る舞いも与えられている場合)、 提供された JavaScript の 実行順は、そのイベントに応じて最初または最後のいずれかになります。 JavaScript イベント・ハンドラーが最初に実行されて false を戻した場合、その振る舞いは実行されません。

表 1. 振る舞いオブジェクト

振る舞い

説明

JSFBehaviorGeneric 関数/アクションを HTML イベント・ハンドラーにバインドします
JSFBehaviorAjaxGet 同じ元のページから、 コンテンツを非同期的に取得/構文解析する方法を定義します。
JSFBehaviorAjaxGetExternal 元の URL とは異なる URL から、 コンテンツを非同期的に取得/構文解析する方法を定義します。
JSFBehaviorAjaxSubmit 元のページとの間で、 コンテンツを非同期的に送信/取得/構文解析する方法を定義します。
JSFBehaviorAssist HTML 入力フィールドでの 入力支援 (文字単位のプロンプト表示) を使用可能にします
JSFBehaviorFocus ページがロードされるときに、初期フォーカスをページ内のコントロールに合わせます。
JSFBehaviorKeybind 関数/アクションを、 ファンクション・キーまたは制御キーにバインドします
JSFBehaviorMouseclick 関数/アクションを、 右マウス・ボタンまたはすべてのマウス・ボタンにバインドします
JSFBehaviorTrack フィールド/カーソルのトラッキングを使用可能にし、 フォームが送信されたときに、 フォーカス/カーソルが最後に存在した場所に関する情報が送信の一部として伝送されます。
JSFBehaviorTypeahead 先行入力サポートを入力フィールドに追加します。
JSFBehaviorValidate HTML の入力タグ または選択タグの値が正しいことを検証し、 正しくない場合にはエラーを表示します
JSFBehaviorRowAction 内部使用のみ。 行アクションを、h:dataTable 内の行に追加します
JSFBehaviorRowCategory 内部使用のみ。 行カテゴリーの振る舞いを、h:dataTable 内の行に追加します
JSFBehaviorRowEditSave 内部使用のみ。 保管振る舞いを、h:dataTable 内の編集可能な行に追加します
JSFBehaviorRowEditShowHide 内部使用のみ。 (編集域の) 表示/非表示振る舞いを、h:dataTable 内の編集可能な行に追加します
JSFBehaviorPager 内部使用のみ。 h:dataTable 内でのページング振る舞いをサポートします
JSFBehaviorHS 内部使用のみ。 <hx:panelActionbar> 用のクライアント・サイド・ロジックを実装します
JSFBehaviorAlert 推奨されません。 イベントの起動時に、アラート/確認ダイアログ・ボックスを 表示します (代わりに JSFBehaviorGeneric を使用してください)
関連概念
JSF ウィジェット・ライブラリー (JWL)

フィードバック