Sample JavaScript HTML

The following script is designed to be used with BlueZone Web-to-Host running in the Embedded Client Mode. This script launches an "embedded" BlueZone IBM 3270 Mainframe Display session from an Object Tag. Five buttons appear at the top of the web page. Once the session is launched, you can use the buttons to perform the following functions:

  • Log On: Logs onto a TSO session and brings up the ISPF Menu
  • Perform GetCursor: Pops up a Message Box with the current Row and Column of the cursor
  • Perform ReadScreen: Pops up a Message Box with some text that is read from the screen
  • Log Off: Logs off the session
  • Disconnect: Disconnects the BlueZone Host Automation Object

If you have an IBM 3270 Mainframe and you want to use the script as is, you must change the HostAddress value and possibly the Port value located in the Object Tag.

Also, you must change the Username and Password located in the logOn() function with your own valid user name and password.

The sample also contains the ScriptOnInitComplere PARAM shown here:
<PARAM NAME="ScriptLanguage" VALUE="JavaScript">
<PARAM NAME="ScriptOnInitComplete" VALUE="hostConn()">

The purpose of this PARAM is to delay the execution of your script until the BlueZone Web-to-Host control module and associated files are completely downloaded. To use it, create a Function that launches your script. Place that Function name in the PARAM VALUE as shown in the above example and in the sample script below.

To use the script:
  1. Create a text document.
  2. Save the file with any name you want and a file extension of .htm or .html.
  3. Copy and paste the HTML code into the document you just created.

    You can also cut and paste the script into an existing HTML page. Either way, since this page contains the Object Tag, this page takes the place of your current Object Tag page.

Note: In order to use this sample HTML page and script, you must have BlueZone Web-to-Host installed and running on a web server with the optional BlueZone scripting cab file made available to the end users.

Refer to the “How to Include BlueZone Scripting Components” section in the BlueZone Web-to-Host Administrator’s Guide for more information. Also, In order for the BlueZone Host Automation Object to communicate with a BlueZone Display emulation session, you must enable the BlueZone DDE interface. Refer to Configuring BlueZone for more information on enabling the DDE interface.

If you want the script to automatically Log On to the host, uncomment the last two lines of the hostConn() function. The last two lines contain the words "else" and "logOn()". By uncommenting these two lines, the function "hostConn() automatically calls the function logOn().

Differences Between VBScript and JavaScript

Some scripting languages such as JScript and JavaScript only support passing variable parameters to functions as Values (copies), as opposed to passing variable parameters to functions as References (pointers). In these scripting environments, parameters passed to functions that return data need to be of type "Object". The BlueZone Host Automation Object has built-in support for passing variables of type Object to its methods that return data, and uses the reserved object members "Str" and "Num" to "fill-in" the data to be returned. In the following Sample HTML Page, there are examples of the ReadScreen and Get Cursor Methods using correct JavaScript syntax.. The ReadScreen Method returns a string of text so "Str" has to be used, and the GetCursor Method returns a number value so "Num" has to be used.

In the BlueZone Object Methods Listing, the examples are given in VBScript. However, when the syntax required by JavaScript is different than VBScript, the example is given in both VBScript and JavaScript.
Note: The following example is for the 32-bit version of BlueZone. If you are using the 64-bit version of BlueZone, replace bzw2h32.cab with bzw2h64.cab.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>JavaScript Sample Page</TITLE>

<SCRIPT language="JavaScript" type="text/javascript">

// create function hostConn() which is called by "ScriptOnInitComplete" in the Object Tag
function hostConn() {

		// instantiate the BlueZone Object
		host = new ActiveXObject( "BZWhll.WhllObj" );
		ResultCode = host.Connect( "A" ); 

		if ( ResultCode != 0 )
		//display an error message if can't connect
		host.MsgBox( "Error connecting to session A!", 48 );
}

// log on to the host
function logOn() {
		host.SendKey( "TSO" );
		host.SendKey( "<Enter>" );
		host.Wait( 1 );
		host.WaitReady( 10, 1 );
		host.SendKey( "username" );
		host.SendKey( "<Enter>" );
		host.WaitReady( 10, 1 );
		host.SendKey( "password" );
		host.SendKey( "<Enter>" );
		host.WaitReady( 10, 1 ); 
		host.SendKey( "<Enter>" );
		host.WaitReady( 10, 2 );
		host.SendKey( "<Enter>" );
		host.WaitReady( 10, 1 );
		host.Focus();
}

// *** GetCursor Example ***
function getCursor() {
		var Row = new Object();
		var Col = new Object();
		host.GetCursor( Row, Col );
		alert( "The Row = " + Row.Num + ", the Column = " + Col.Num );
		host.Focus();
}

// *** ReadScreen Example ***
function readScreen() {
		var Buf = new Object();
		host.ReadScreen (Buf, 8, 6, 19);
		alert( "The contents of Buf = " + Buf.Str );
		host.Focus();
}

// *** ReadScreen Example ***
function readScreen() {
		var Buf = new Object();
		host.ReadScreen (Buf, 8, 6, 19);
		alert( "The contents of Buf = " + Buf.Str );
		host.Focus();
}

// disconnect the BlueZone Object
function disconnObj() {
		alert ( "BZHAO Disconnected!" );
		host.disconnect();
}

</SCRIPT>
</HEAD>
<BODY>

<DIV Style="Position:Absolute;Left:10px;Top:50px">

		<OBJECT ID="BlueZone Web-to-host Control Module v5"
		CLASSID="clsid:037790A6-1576-11D6-903D-00105AABADD3"
		CODEBASE="../controls/bzw2h32.cab#Version=-1,-1,-1,-1"
		HEIGHT=480
		WIDTH=740
		>
		<PARAM NAME="IniFile" VALUE="default.ini">
		<PARAM NAME="Sessions" VALUE="MD_S1">
		<PARAM NAME="DistFile" VALUE="default.dst">
		<PARAM NAME="MD_S1" VALUE="mainframe.zmd">
		<PARAM NAME="MD_S1_Save" VALUE="Yes">
		<PARAM NAME="ScriptLanguage" VALUE="JavaScript">
		<PARAM NAME="ScriptOnInitComplete" VALUE="hostConn()">
		<PARAM NAME="MD_S1_RunInBrowser" VALUE="Position">
		</OBJECT>

</DIV>

<FORM>
		<INPUT NAME="submit" TYPE=Button VALUE="Log On" onClick="logOn()">
		<INPUT NAME="submit" TYPE=Button VALUE="Perform GetCursor" onClick="getCursor()">
		<INPUT NAME="submit" TYPE=Button VALUE="Perform ReadScreen" onClick="readScreen()">
		<INPUT NAME="submit" TYPE=Button VALUE="Log Off" onClick="logOff()">
		<INPUT NAME="submit" TYPE=Button VALUE="Disconnect" onClick="disconnObj()">
</FORM>

</SCRIPT>
</BODY>
</HTML>