![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Call a JavaScript Function Returning an IntegerSee more JavaScript ExamplesDemonstrates how to call a JavaScript function that returns an integer.Note: This example requires Chilkat v11.4.0 or greater.
Use ChilkatAx-win32.pkg Procedure Test Boolean iSuccess Variant vSbScript Handle hoSbScript Handle hoJs Variant vResult Handle hoResult Variant vFuncCall Handle hoFuncCall Integer iRetval String sTemp1 Move False To iSuccess // ---------------------------------------------------------------------------------- // The Javascript function called in this example is shown at the bottom of this page. // ----------------------------------------------------------------------------------- // In this example, we'll load the Javascript function definition from a file. // It doesn't need to come from a file. It could just as easily be loaded from a string. Get Create (RefClass(cComChilkatStringBuilder)) To hoSbScript If (Not(IsComObjectCreated(hoSbScript))) Begin Send CreateComObject of hoSbScript End Get ComLoadFile Of hoSbScript "js_call_function.js" "utf-8" To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoSbScript To sTemp1 Showln sTemp1 Procedure_Return End // Note: Each instance of a Chilkat Js object automatically establishes // its own internal runtime and context. Applications do not need to explicitly create // the JavaScript runtime or context. Get Create (RefClass(cComChilkatJs)) To hoJs If (Not(IsComObjectCreated(hoJs))) Begin Send CreateComObject of hoJs End Get Create (RefClass(cComChilkatJsonObject)) To hoResult If (Not(IsComObjectCreated(hoResult))) Begin Send CreateComObject of hoResult End Set ComEmitCompact Of hoResult To False // Call Eval to add the function (shown at the bottom of this page) to the context's global object Get pvComObject of hoSbScript to vSbScript Get pvComObject of hoResult to vResult Get ComEval Of hoJs vSbScript vResult To iSuccess If (iSuccess = False) Begin // Examine the result for an exception. Get ComEmit Of hoResult To sTemp1 Showln sTemp1 // Also examine the LastErrorText. Get ComLastErrorText Of hoJs To sTemp1 Showln sTemp1 Procedure_Return End Get ComEmit Of hoResult To sTemp1 Showln sTemp1 // The expected output is "undefined": // { // "type": "undefined", // "value": "undefined" // } // When Eval processes a script containing only a function declaration, // it successfully performs the action (the function becomes defined). // However, since the script consists of a statement that produces no value, // the script's overall completion value is empty. In JavaScript, the // absence of a value is represented by `undefined`. // // Therefore, the Eval call returns `undefined`. // ------------------------------------------------------------------------------ // Call the function calculateScore("Player1", 10, 20) Get Create (RefClass(cComChilkatJsonObject)) To hoFuncCall If (Not(IsComObjectCreated(hoFuncCall))) Begin Send CreateComObject of hoFuncCall End // Create JSON defining the function call: // { // "name": "calculateScore", // "args": [ "Player1", 10, 20 ] // } Get ComUpdateString Of hoFuncCall "name" "calculateScore" To iSuccess Get ComUpdateString Of hoFuncCall "args[0]" "Player1" To iSuccess Get ComUpdateInt Of hoFuncCall "args[1]" 10 To iSuccess Get ComUpdateInt Of hoFuncCall "args[2]" 20 To iSuccess Set ComEmitCompact Of hoFuncCall To False Get ComEmit Of hoFuncCall To sTemp1 Showln sTemp1 Get pvComObject of hoFuncCall to vFuncCall Get pvComObject of hoResult to vResult Get ComCallFunction Of hoJs vFuncCall vResult To iSuccess If (iSuccess = False) Begin // Examine the result for an exception. Get ComEmit Of hoResult To sTemp1 Showln sTemp1 // Also examine the LastErrorText. Get ComLastErrorText Of hoJs To sTemp1 Showln sTemp1 Procedure_Return End Get ComEmit Of hoResult To sTemp1 Showln sTemp1 // Output: // { // "type": "int", // "value": 37 // } Get ComIntOf Of hoResult "value" To iRetval Showln "retval = " iRetval End_Procedure
|
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.