JavaScript 関数の作成と再利用

スクリプトオブジェクト」とは、特定のフォームオブジェクトとは別個に JavaScript の関数と値を保存するのに使用できるオブジェクトを指します。通常はスクリプトオブジェクトを使用して、フォーム上の様々な箇所で JavaScript スクリプトの一部として使用したい関数やメソッドを作成します。このテクニックによって、少ないスクリプトで繰り返し型のアクションを実行できるようになります。

スクリプトオブジェクトは、JavaScript で記述されたスクリプトのみに対応します。なお、スクリプトオブジェクトを呼び出すイベントのスクリプト言語が JavaScript に設定されている場合、スクリプトの実行場所に制限はありません。

Acrobat および Forms は両者ともスクリプトオブジェクト内のスクリプトを同様の方法で処理しますが、両者の処理は区別されます。

クライアント側で実行するように設定されたスクリプトオブジェクトを利用できるのはクライアント側で実行するように設定されたスクリプトのみで、逆についても同じことが言えます。

スクリプトオブジェクトを作成するには

スクリプトオブジェクトの作成は 2 部に分かれます。一方はオブジェクトのフォームデザインへの追加で、他方はスクリプトオブジェクトに保存するスクリプトの記述です。

  1. 新しいフォームを作成するか、既存のフォームを開きます。

  2. 階層パレットでフォームレベルのオブジェクトかサブフォームレベルのオブジェクトを右クリックし、「スクリプトオブジェクトの挿入」を選択します。

    フルサイズのグラフィックを表示
    A. フォームレベルのオブジェクト B. サブフォームレベルのオブジェクト C. サブフォームレベルのスクリプトオブジェクト D.フォームレベルのスクリプトオブジェクト
  3. (オプション)スクリプトオブジェクトを右クリックして「オブジェクト名の変更」を選択します。

スクリプトをスクリプトオブジェクトに追加するには

フォームにスクリプトオブジェクトを設定すると、スクリプトエディターを使用してスクリプトを追加できるようになります。

  1. 階層パレットでスクリプトオブジェクトを選択します。

    スクリプトエディターはイベントリストにスクリプトオブジェクトの値を、言語リストに「JavaScript」を表示します。どちらの値も変更することはできません。

  2. スクリプト編集フィールドに目的のスクリプトを入力します。

  3. フォームをテストするには、「PDF プレビュー」タブをクリックします。

例えば、次の関数を含む feedback という名称のスクリプトオブジェクトを作成します。

function emptyCheck(oField) { 
 
    if ((oField.rawValue == null) || (oField.rawValue == "")) { 
        xfa.host.messageBox("You must input a value for this field.", "Error Message", 3); 
    } 
}

スクリプトオブジェクトに保存された JavaScript 関数を参照するには

スクリプトオブジェクトにスクリプトを追加すると、JavaScript スクリプトをサポートする任意のイベントからスクリプトオブジェクトを参照できます。

  1. フォームでオブジェクトを選択し、「イベント」リストからイベントを選択します。

  2. スクリプトオブジェクトおよびスクリプトオブジェクト内の関数を参照します。次の汎用構文は、スクリプトオブジェクトを参照しているオブジェクトがフォームの階層内でスクリプトオブジェクトと同じレベルに存在するか、スクリプトオブジェクトがフォームの階層の最上位に存在すると想定しています。

    script_object.function_name(parameter1, ...);

  3. 新規スクリプトをフォームオブジェクトに適用し、「PDF プレビュー」タブでフォームをプレビューしてテストします。

フォームにある他のオブジェクトを参照するのと同様に、スクリプトオブジェクトを参照する場合は、フォームの階層内の位置を示す正しい構文を使用する必要があります。スクリプト作成時のオブジェクト参照について詳しくは、オブジェクトのプロパティおよび値の参照を参照してください。

例えば、スクリプトをスクリプトオブジェクトに追加するにはのスクリプトオブジェクト例を使用し、次の JavaScript スクリプトをテキストフィールドの exit イベントに挿入します。「PDF プレビュー」タブでフォームをテストします。