Visual FoxPro
Visual FoxPro
Call a JavaScript Function Returning a String
See more JavaScript Examples
Demonstrates how to call a JavaScript function that returns a string.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loSbScript
LOCAL loJs
LOCAL loResult
LOCAL loFuncCall
LOCAL lcRetval
lnSuccess = 0
* This is the JavaScript function we'll call:
* function greet(name) {
* return "Hello, " + name + "!";
* }
loSbScript = CreateObject('Chilkat.StringBuilder')
loSbScript.Append('function greet(name) { return "Hello, " + name + "!"; }')
loJs = CreateObject('Chilkat.Js')
loResult = CreateObject('Chilkat.JsonObject')
loResult.EmitCompact = 0
* Call Eval to add the function to the context's global object
lnSuccess = loJs.Eval(loSbScript,loResult)
IF (lnSuccess = 0) THEN
* Examine the result for an exception.
? loResult.Emit()
* Also examine the LastErrorText.
? loJs.LastErrorText
RELEASE loSbScript
RELEASE loJs
RELEASE loResult
CANCEL
ENDIF
* ------------------------------------------------------------------------------
* Call the function greet("Michael")
loFuncCall = CreateObject('Chilkat.JsonObject')
* Create JSON specifying the function name and arguments
* {
* "name": "greet",
* "args": [ "Michael" ]
* }
loFuncCall.UpdateString("name","greet")
loFuncCall.UpdateString("args[0]","Michael")
lnSuccess = loJs.CallFunction(loFuncCall,loResult)
IF (lnSuccess = 0) THEN
* Examine the result for an exception.
? loResult.Emit()
* Also examine the LastErrorText.
? loJs.LastErrorText
RELEASE loSbScript
RELEASE loJs
RELEASE loResult
RELEASE loFuncCall
CANCEL
ENDIF
? loResult.Emit()
* Output:
* {
* "type": "string",
* "value": "Hello, Michael!"
* }
lcRetval = loResult.StringOf("value")
? lcRetval
* Output:
* Hello, Michael!
RELEASE loSbScript
RELEASE loJs
RELEASE loResult
RELEASE loFuncCall