ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v20 R7
WA Evaluate JavaScript

WA Evaluate JavaScript 


 

WA Evaluate JavaScript ( {* ;} object ; jsCode {; type} ) -> 戻り値 
引数   説明
演算子 in 指定時, objectはオブジェクト名 (文字列) 省略時, objectは変数
object  フォームオブジェクト in オブジェクト名 (* 指定時) または 変数 (* 省略時)
jsCode  文字 in JavaScriptコード
type  倍長整数 in 戻り値に指定する型
戻り値  日付, オブジェクト, ポインター, 実数, テキスト, 時間 in 実行結果

説明   

WA Evaluate JavaScript コマンドは、*object 引数で指定したWebエリアで、jsCodeに渡されたJavaScriptコードを実行し、結果を戻します。このコマンドはページが読み込まれた後に呼び出してください(On End URL Loading フォームイベントが生成されている必要があります)。

デフォルトでは、コマンドは値を文字列として返します。任意の type 引数を用いることによって、戻ってくる値の型を指定することができます。使用できる定数は "Field and Variable Types" テーマ内にある以下の一覧の通りです。

定数
Is Boolean 倍長整数 6
Is collection 倍長整数 42
Is date 倍長整数 4
Is longint 倍長整数 9
Is object 倍長整数 38
Is real 倍長整数 1
Is text 倍長整数 2
Is time 倍長整数 11

警告: このコマンドを使用して、ダイアログを表示するようなJavaScript 関数(alert(), print()...) を直接呼び出すことは推奨されていません。4D コードが実行中はユーザーはWeb エリアを操作することができないからです。このようなインターフェースを実装する必要がある場合には、例えば setTimeout(function(){alert();}, 50)) のようなコードを呼び出すことで、4D コードが実行を完了させたあとにユーザーが入力をできるようにすることができます。

この例題のJavaScriptコードは、履歴中前のURLを表示します:

 $result:=WA Evaluate JavaScript(MyWArea;"history.back()")

以下に返ってきた結果の変換を含む例を紹介します。

HTML ファイル内にあるJavaScriptファンクションの例:

<!DOCTYPE html>
<html>
    <head>
        <script>
        function evalLong(){
            return 123;
        }
        function evalText(){
            return "456";
        }
        function evalObject(){
            return {a:1,b:"hello world"};
        }
        function evalDate(){
            return new Date();
        }
    </script>
    </head>
    <body>
        TEST PAGE
    </body>
</html>

4Dフォームメソッドでは以下の様に記述します:

 If(Form event code=On Load)
    WA OPEN URL(*;"Web Area";"C:\\myDatabase\\index.html")
 End if

その後、4DからのJavaScriptコードを以下の様に評価します:

 $Eval1:=WA Evaluate JavaScript(*;"Web Area";"evalLong()";Is longint)
  //$Eval1 = 123
  //$Eval1 = 型が省略されていた場合は"123"
 $Eval2:=WA Evaluate JavaScript(*;"Web Area";"evalText()";Is text)
  //$Eval2 = "456"
 $Eval3:=WA Evaluate JavaScript(*;"Web Area";"evalObject()";Is object)
  //$Eval3 = {"a":1,"b":"hello world"}
 $Eval4:=WA Evaluate JavaScript(*;"Web Area";"evalDate()";Is date)
  // $Eval4 = 06/21/13
  // $Eval4 = 型が省略されていた場合は"2013-06-21T14:45:09.694Z"



参照 

WA EXECUTE JAVASCRIPT FUNCTION

 
プロパティ 

プロダクト: 4D
テーマ: Webエリア
番号: 1029

 
ページの目次 
 
履歴 

初出: 4D v11 SQL Release 2
変更: 4D v14
名称変更: 4D v14 (WA Execute JavaScript)
変更: 4D v16 R4

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v20 R7)