Visual FoxPro
Visual FoxPro
JavaScript console using Callbacks
See more JavaScript Examples
Demonstrates console output using Chilkat JavaScript with callbacks.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loSbScript
LOCAL loJs
LOCAL loResult
lnSuccess = 0
* This example demonstrates using the built-in console object.
* The Javascript run in this example is shown below.
* Load the JavaScript from a file.
loSbScript = CreateObject('Chilkat.StringBuilder')
lnSuccess = loSbScript.LoadFile("qa_data/js_tests/test_console.js","utf-8")
IF (lnSuccess = 0) THEN
? loSbScript.LastErrorText
RELEASE loSbScript
CANCEL
ENDIF
loJs = CreateObject('Chilkat.Js')
jsEventHandler = CreateObject("jsEvents")
EventHandler(loJs,jsEventHandler)
loResult = CreateObject('Chilkat.JsonObject')
* Run the JavaScript
* Results (not console output) go to result.
* Note: Eval returns the completion value of the script. This is generally the value of the last evaluated expression.
* In this case, the last evaluated expression is console.log which does not calculate a value. Therefore, it returns undefined.
lnSuccess = loJs.Eval(loSbScript,loResult)
IF (lnSuccess = 0) THEN
? loSbScript.LastErrorText
RELEASE loSbScript
RELEASE loJs
RELEASE loResult
CANCEL
ENDIF
* We can look at the result, which is "undefined", which is normal and expected.
? loResult.Emit()
* The result JSON is: {"type":"undefined","value":"undefined"}
* The console output is received using ProgressInfo callbacks.
* The output is:
* log: Hello World, 248, 12.05
*
* error: foo:bar baz
*
* warn: 1 2 3
*
* log: %% %s
*
* log: myApp: {
* "appName": "Example",
* "version": 1,
* "isDebug": true,
* "supportedTypes": [
* "string",
* "number",
* "object"
* ],
* "settings": {
* "maxWidgets": 1024,
* "allowIO": true
* }
* }
*
* log: App: myApp (Version 1)
*
* {"type":"undefined","value":"undefined"}
RELEASE loSbScript
RELEASE loJs
RELEASE loResult
DEFINE CLASS jsEvents AS SESSION OLEPUBLIC
IMPLEMENTS _IChilkatEvents IN "Chilkat.Js"
PROCEDURE _IChilkatEvents_AbortCheck(abort As Number)
* Application code goes here...
ENDPROC
PROCEDURE _IChilkatEvents_BinaryData(data As Variant)
* Application code goes here...
ENDPROC
PROCEDURE _IChilkatEvents_PercentDone(pctDone As Number, abort As Number)
* Application code goes here...
ENDPROC
PROCEDURE _IChilkatEvents_ProgressInfo(name As String, value As String)
* Application code goes here...
? name + ": " + value
ENDPROC
PROCEDURE _IChilkatEvents_TaskCompleted(task As Generic)
* Application code goes here...
ENDPROC
PROCEDURE _IChilkatEvents_TextData(data As String)
* Application code goes here...
ENDPROC
ENDDEFINE