Applies to HTML Viewer, IE Browser publications. HTML Executable publications are actually script-driven and they feature a built-in script engine. A publication is therefore managed by a collection of scripts that were generated and compiled into p-code by HTML Executable. When a publication is run, its runtime module executes the different scripts in order to simulate a web browser where end users can view your HTML pages, and to respond to the actions performed by your end users. You can therefore extend the functionality of publications by writing and calling your own script functions. This feature allows you to do almost anything you want. 
| Note that you are not obliged to work with scripting in order to use HTML Executable and compile publications. Scripting is for advanced users who want to have full control over their publications. Do not hesitate to see the samples and the wiki. |
About the script language The script language used by HTML Executable is called HEScript. It is based on the Object Pascal language syntax (similar to CodeGear® Delphi) with some minor changes.
Contrary to JavaScript, you can not write HEScript functions directly into HTML pages because the HEScript scripts need first to be compiled into pseudo-code as explained above (contrary to JavaScript which is interpreted). That's why you have to use the User Script Manager to write and manage your scripts. A simple script example: // UserMain // This script contains special functions related to some of the events triggered by the publication. // You can then optionally add new commands.
function OnBeforeNavigate(NewURL, TargetFrame: String): Boolean; begin // Before the publication displays a page. Set Result to True to stop the operation. Result := False; end;
procedure OnNavigateComplete; begin // When a page has been displayed. end; A script file is a group of procedures or functions. Each script file has a unique name; each procedure/function has a name following these rules:
only alphanumeric characters may be used, no space. each name must be unique in a given script file, but you can have two different script files that contain procedures or functions with the same name.
Some important notes:Script files act like namespaces. When you call or assign a procedure/function to an event, you will need to specify the script name followed by a dot (.) and the name of this procedure/function, i.e. [scriptname].[functionprocedurename]. Example: UserMain.OnNavigateComplete
Each script is managed by an independent script engine so you have to use global variables in order to exchange data between scripts.
The use of local variables is possible but not recommended.
Please see these topics too: How to call HEScript procedures/functions?
Using the Script Manager
Script Function Reference
Pre-defined events, script templates, UserMain script
Sample Scripts
|