Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
12.2
12.3
12.4
12.5
13.0
13.1
13.2
13.3
13.4
13.5
Statistic
FMM
Blog
Evaluate a string of JavaScript code.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
JavaScriptWebKit | 5.4 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameter | Description | Example | Flags |
---|---|---|---|
JavaScriptContext | The reference number of the javascript context. | $Context | |
Script | The script to evaluate. | ||
URL | The source URL for this script. A URL for the script's source file. Used by debuggers and when reporting exceptions. This parameter is informative only: it does not change the behavior of the script. |
Optional | |
startingLineNumber | An integer value specifying the script's starting line number in the file located at sourceURL. This is only used when reporting exceptions. The value is one-based, so the first line is line 1 and invalid values are clamped to 1. | 1 | Optional |
Returns text or error.
Set variables and use them in the script:
Set Variable [ $js ; Value: MBS( "JavaScript.New" ) ]
Set Variable [ $r ; Value: MBS( "JavaScript.SetProperty"; $js; "FirstName"; "Joe" ) ]
Set Variable [ $r ; Value: MBS( "JavaScript.SetProperty"; $js; "LastName"; "Miller" ) ]
Set Variable [ $r ; Value: MBS( "JavaScript.EvaluateScript"; $js; "FirstName + ' ' + LastName;" ) ]
Show Custom Dialog [ "Result" ; $r ]
Set Variable [ $r ; Value: MBS( "JavaScript.Release"; $js ) ]
Evaluate in javascript the FileMaker get function:
Set Variable [ $js ; Value: MBS( "JavaScript.New" ) ]
Set Variable [ $r ; Value: MBS( "JavaScript.RegisterEvaluateFunction"; $js; "FMEvaluate" ) ]
Set Variable [ $r ; Value: MBS( "JavaScript.EvaluateScript"; $js; "FMEvaluate('Get(AccountName)') + ' from javascript'") ]
Show Custom Dialog [ "Result" ; $r ]
Set Variable [ $r ; Value: MBS( "JavaScript.Release"; $js ) ]
Defines and runs a function in JavaScript:
Let([
f = "
function makeCRCTable(){
var c;
var crcTable = [];
for(var n =0; n < 256; n++){
c = n;
for(var k =0; k < 8; k++){
c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));
}
crcTable[n] = c;
}
return crcTable;
}
function crc32(str) {
var crcTable = crcTable || (crcTable = makeCRCTable());
var crc = 0 ^ (-1);
for (var i = 0; i < str.length; i++ ) {
crc = (crc >>> 8) ^ crcTable[(crc ^ str.charCodeAt(i)) & 0xFF];
}
return (crc ^ (-1)) >>> 0;
};
crc32(InputValue);";
j = MBS( "JavaScript.New" );
r = MBS( "JavaScript.SetProperty"; j; "InputValue"; "Hello World" );
r = MBS( "JavaScript.EvaluateScript"; j; f );
x = MBS( "JavaScript.Release"; j )
];r)
Use trimStart(), a feature from ECMAScript 2019:
Set Variable [ $js ; Value: MBS("JavaScript.New") ]
Set Variable [ $r ; Value: MBS("JavaScript.evaluateScript"; $js; "const greeting = ' Hello world! '; greeting.trimStart();") ]
Set Variable [ $r ; Value: MBS("JavaScript.Release"; $js) ]
This function checks for a license.
Created 5th November 2015, last changed 9th February 2023