フォーム送信時に変更されるアクション URL

JavaScript を使用するとフォームのアクション URL を変更できます。

function SubmitSearch(linkUrl)
{
  document.searchForm.action = linkUrl;
  document.searchForm.submit();
}
...
<form name="searchForm"
      method="POST"
      target=_self>
  <input type=input name="searchString" value="">
  <input type=hidden name="BV_SessionID"
                     value="@@@@1245417051.1003814911@@@@">
</form>
<a href="JavaScript:SubmitSearch('http://my.server.com/search.asp')">
   Search this site</a>
<a href="JavaScript:SubmitSearch('http://my.mirror.com/search.asp')">
   Search mirror site</a>

別の絶対アクション URL を指定する

このページが関数呼び出しによってダウンロードされたと仮定します。

WebPageLink("Advanced Search");

スクリプト内に値を持たない非表示のフィールド BV_SessionID を自動的に処理するため、Silk Performer のコンテキストのある WebPageSubmit 関数の使用をお勧めします。

これを簡略化するために、Silk Performer には別のアクション URL を指定して WebPageSubmit 関数で使用するためのオプションが用意されています。

これを行うために使用される関数は WebPageSetActionUrlAbs です。 WebPageSubmit を呼び出す前にこの関数が呼び出されると、HTML コードで指定したアクション URL ではなく WebPageSetActionUrlAbs 関数で指定した URL が使用されます。

この関数を使用する場合、前述の BDL コードを次のように書き直します。

WebPageLink("Advanced Search");
WebPageSetActionUrlAbs("http://my.mirror.com/search.asp");
WebPageSubmit("searchForm", FORM_SEARCH);
...
dclform
  FORM_SEARCH:
    "searchString"   := "discount",
    "BV_SessionID"   := "" <USE_HTML_VAL>;
注: WebPageSetActionUrlAbs を使用すると、コンテキストのない WebPageForm 関数ではなくコンテキストのある WebPageSubmit 関数を使用することができ、コンテキストのある方法で FORM_SEARCH フォームを使用することができます。

関数 WebPageSubmit の生成が許可されている場合、Silk Performer Recorder はコンテキストのない関数ではなく WebPageSetActionUrlAbs 関数を自動的に生成します。

この機能を有効にするには、設定 > アクティブ プロファイル > Web > 記録 タブの コンテキスト管理の詳細設定 ダイアログ ボックスで 変更されたアクション URL を許可する チェックボックスをオンにします。

別の解析済みアクション URL を指定する

別の絶対アクション URL の指定では、コンテキストのあるフォームを使用できるという利点がありますが、URL はコンテキストがないままで、スクリプトにハードコードされます。

アクション URL に状態情報も含まれている場合、アクション URL はコンテキストありで指定する必要があります。

これは WebPageSetActionUrl 関数を使用して実行できます。 WebPageSetActionUrlAbs 関数と異なり、WebPageSetActionUrl 関数は完全 URL ではなく解析済み URL の名前を受け取ります。

WebPageSetActionUrl 関数での使用のためにカスタム URL を解析することができます。 上記例を次のように書き直すとサンプルが表示されます。

WebPageParseUrl("Form Action", "SubmitSearch('", "'");
WebPageLink("Advanced Search");
WebPageSetActionUrl("Form Action", 2);
WebPageSubmit("searchForm", FORM_SEARCH);
...
dclform
  FORM_SEARCH:
    "searchString"   := "discount",
    "BV_SessionID"   := "" <USE_HTML_VAL>;

この例では、2 回目に出現した解析済み URL Form Action を使用してアクション URL を http://my.mirror.com/search.asp に設定します。 スクリプトでは、アクション URL に含まれることのある状態情報を処理することができます。

Silk Performer Recorder は WebPageSetActionUrl 関数への呼び出しを自動的に生成し、WebPageSetActionUrlAbs を呼び出すのではなく、WebPageParseUrl に対応する呼び出しを生成することができます。

この機能を有効にするには、設定 > アクティブ プロファイル > Web > 記録 タブの コンテキスト管理の詳細設定 ダイアログ ボックスで 動的なアクション URL 解析 チェックボックスをオンにします。