Sample code for 30+ languages & platforms
PureBasic

JavaScript console

See more JavaScript Examples

Demonstrates console output using Chilkat JavaScript.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkJs.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 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.
    sbScript.i = CkStringBuilder::ckCreate()
    If sbScript.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkStringBuilder::ckLoadFile(sbScript,"qa_data/js_tests/test_console.js","utf-8")
    If success = 0
        Debug CkStringBuilder::ckLastErrorText(sbScript)
        CkStringBuilder::ckDispose(sbScript)
        ProcedureReturn
    EndIf

    js.i = CkJs::ckCreate()
    If js.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    result.i = CkJsonObject::ckCreate()
    If result.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; 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.
    success = CkJs::ckEval(js,sbScript,result)
    If success = 0
        Debug CkStringBuilder::ckLastErrorText(sbScript)
        CkStringBuilder::ckDispose(sbScript)
        CkJs::ckDispose(js)
        CkJsonObject::ckDispose(result)
        ProcedureReturn
    EndIf

    ; We can look at the result, which is "undefined", which is normal and expected.
    Debug CkJsonObject::ckEmit(result)
    ; The result JSON is: {"type":"undefined","value":"undefined"}

    ; The console output is retrieved by calling ConsoleOutputSb
    sbOut.i = CkStringBuilder::ckCreate()
    If sbOut.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJs::ckConsoleOutputSb(js,sbOut)
    Debug CkStringBuilder::ckGetAsString(sbOut)


    CkStringBuilder::ckDispose(sbScript)
    CkJs::ckDispose(js)
    CkJsonObject::ckDispose(result)
    CkStringBuilder::ckDispose(sbOut)


    ProcedureReturn
EndProcedure