Difference between revisions of "カスタムコマンドの作成"
(→カスタムコマンドの作成) |
(→一般的な問題点) |
||
Line 67: | Line 67: | ||
== 一般的な問題点 == | == 一般的な問題点 == | ||
− | カスタムコマンドは、Internet Explorer では機能しますが、Firefox では機能しません。Firefox で実行しようとすると、「document」変数または「alert」変数が定義されていない、などのエラーメッセージが表示されます。Firefox で使用するには、これらのオブジェクトの前に「window」を追加する必要があります。 | + | カスタムコマンドは、Internet Explorer では機能しますが、Firefox では機能しません。Firefox で実行しようとすると、「document」変数または「alert」変数が定義されていない、などのエラーメッセージが表示されます。Firefox で使用するには、これらのオブジェクトの前に「window」を追加する必要があります。 |
− | + | ||
− | + |
Revision as of 02:09, 25 March 2014
カスタムコマンドにより、GXtest ではアクションや検証を実行する新しいコマンドを JavaScript 言語を使用して作成できます。
Contents |
カスタムコマンドの作成
次のメニューを開いてカスタムコマンドを作成します。
次の画面が開きます。ここで、コマンドが実行されたときに実行される JavaScript のコードを入力します:
参照に使用する名前と、コマンドの説明を入力します。
コマンドのタイプを選択します:
- Action (アクション)
- Event (イベント)
- Validation (検証)
次に、コマンドが有効になる GeneXus のバージョンを選択します。
[JS] テキストボックスに JavaScript のテンプレートが表示されます。コマンドを実装するには、このテンプレートに従う必要があります。
GeneXus のバージョンや言語によって実行するアクションを変更したい場合は、JavaScript 関数を実装するときに、バージョンには v8、v9、v10、undefined のいずれかの値、currentLanguage には java、.NET、undefined のいずれかの値を指定できます。「ParamJS」にパラメーターを追加することもできます。
正常に終了した場合、結果の変数は OK を返し、失敗した場合はエラーメッセージを返します。
次の例では、GXtest が提供する情報をパラメーターで使用する方法を示しています。生成言語 (java または .NET) に応じて異なるアクションを実行します。
if (currentLanguage=="Java") {
}
else if (currentLanguage=="net")
{
}
else
{
}
GeneXus のバージョンについても同じように記述できます。
こちらにも例を示しています。
カスタムコマンドの使用
カスタムコマンドを作成したら、ほかのネイティブコマンドと同様に GXtest で使用できるようになります。また、手動による追加と編集が可能です。
制限事項としては、ツールバーを使用して自動的に記録できないことが挙げられます。
推奨事項
JS 関数の作成を簡素化するために、Google Chrome 用の Web Developer、Firefox 用の Firebug など、任意のツールを使用することで、さまざまなアクションを実行するために使用できるエレメントを確認できます。
たとえば、JavaScript で開発したメニューにアクセスするコマンドを作成する場合、イベントを使用する場合も、ダイナミックリンクで生成する場合も、これらのツールを使用して、ナビゲーションを実行する方法を確認できます。
その後、JavaScript の動作を確認する必要があります。メニューがメモリに割り当てられている場合、JavaScript を使用してオブジェクトを直接参照することをお勧めします。メモリに割り当てられていない場合は、「document」オブジェクトまたは「this」を参照することで、該当のオブジェクトを html 上で参照できます。
一般的な問題点
カスタムコマンドは、Internet Explorer では機能しますが、Firefox では機能しません。Firefox で実行しようとすると、「document」変数または「alert」変数が定義されていない、などのエラーメッセージが表示されます。Firefox で使用するには、これらのオブジェクトの前に「window」を追加する必要があります。