![]() |
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
(Perl) 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 chilkat(); $success = 0; # ---------------------------------------------------------------------------------- # 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. $sbScript = chilkat::CkStringBuilder->new(); $success = $sbScript->LoadFile("js_call_function.js","utf-8"); if ($success == 0) { print $sbScript->lastErrorText() . "\r\n"; exit; } # 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. $js = chilkat::CkJs->new(); $result = chilkat::CkJsonObject->new(); $result->put_EmitCompact(0); # Call Eval to add the function (shown at the bottom of this page) to the context's global object $success = $js->Eval($sbScript,$result); if ($success == 0) { # Examine the result for an exception. print $result->emit() . "\r\n"; # Also examine the LastErrorText. print $js->lastErrorText() . "\r\n"; exit; } print $result->emit() . "\r\n"; # 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) $funcCall = chilkat::CkJsonObject->new(); # Create JSON defining the function call: # { # "name": "calculateScore", # "args": [ "Player1", 10, 20 ] # } $funcCall->UpdateString("name","calculateScore"); $funcCall->UpdateString("args[0]","Player1"); $funcCall->UpdateInt("args[1]",10); $funcCall->UpdateInt("args[2]",20); $funcCall->put_EmitCompact(0); print $funcCall->emit() . "\r\n"; $success = $js->CallFunction($funcCall,$result); if ($success == 0) { # Examine the result for an exception. print $result->emit() . "\r\n"; # Also examine the LastErrorText. print $js->lastErrorText() . "\r\n"; exit; } print $result->emit() . "\r\n"; # Output: # { # "type": "int", # "value": 37 # } $retval = $result->IntOf("value"); print "retval = " . $retval . "\r\n";
|
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.