AutoIt
AutoIt
Call a JavaScript Function Returning an Object
See more JavaScript Examples
Demonstrates how to call a JavaScript function that returns an object.Chilkat AutoIt Downloads
Local $bSuccess = False
; This is the JavaScript function we'll call:
; function getSettings() {
; return {
; theme: "dark",
; notifications: true,
; version: 1.0
; };
; }
$oSbScript = ObjCreate("Chilkat.StringBuilder")
$oSbScript.Append("function getSettings() {")
$oSbScript.Append(" return {")
$oSbScript.Append(" theme: ""dark"",")
$oSbScript.Append(" notifications: true,")
$oSbScript.Append(" version: 1.0")
$oSbScript.Append(" };")
$oSbScript.Append("}")
$oJs = ObjCreate("Chilkat.Js")
$oResult = ObjCreate("Chilkat.JsonObject")
$oResult.EmitCompact = False
; Call Eval to add the function to the context's global object
$bSuccess = $oJs.Eval($oSbScript,$oResult)
If ($bSuccess = False) Then
; Examine the result for an exception.
ConsoleWrite($oResult.Emit() & @CRLF)
; Also examine the LastErrorText.
ConsoleWrite($oJs.LastErrorText & @CRLF)
Exit
EndIf
; ------------------------------------------------------------------------------
; Call the function getSettings()
$oFuncCall = ObjCreate("Chilkat.JsonObject")
; Create JSON specifying the function name and arguments
; The function has no arguments, so we only specify the name.
; {
; "name": "getSettings",
; }
$oFuncCall.UpdateString("name","getSettings")
$bSuccess = $oJs.CallFunction($oFuncCall,$oResult)
If ($bSuccess = False) Then
; Examine the result for an exception.
ConsoleWrite($oResult.Emit() & @CRLF)
; Also examine the LastErrorText.
ConsoleWrite($oJs.LastErrorText & @CRLF)
Exit
EndIf
ConsoleWrite($oResult.Emit() & @CRLF)
; Output:
; {
; "type": "object",
; "value": {
; "theme": "dark",
; "notifications": true,
; "version": 1
; }
; }
; Examine the object's members
ConsoleWrite("theme: " & $oResult.StringOf("value.theme") & @CRLF)
ConsoleWrite("notifications: " & $oResult.BoolOf("value.notifications") & @CRLF)
ConsoleWrite("version: " & $oResult.IntOf("value.version") & @CRLF)
; Output:
; theme: dark
; notifications: True
; version: 1