Working with Pop-up Windows

Applies to IE Browser publications.

HTML Executable lets you open several windows called pop-up windows (or popup) in the same IE browser publication; thus your users can see additional information without navigating away from the current page in the main window. Popup windows are windows without toolbar or status bar. They can feature a custom menu bar however.

Each popup has a unique name.

How to open a popup window

There are several ways to open a new popup window from your HTML pages:

imgwith a standard <A HREF> hyperlink tag: use the target parameter _blank, or if you also want to assign a name to the new popup, use _hepopup_ followed by the name of your popup window (no space, alphanumeric characters only).

Examples:

The popup's name will be pop1 and this popup will show the compiled webpage named popup1.htm

imgNote that _blank will always open a new window while _hepopup_[name] will bring the [name] window to the front if the latter already exists. For instance, click twice on the hyperlinks above.

You can also use external links like http://www.htmlexe.com:
our website

imgwith JavaScript functions: window.open and window.external.ShowPopup are supported.

Syntax: window.open(page,"popup2","width=500, height=200");

window.open will only take account of the "width" and "height" parameters if available. If you want to set the position too, use window.external.ShowPopup instead.

Note that you should always give a name to the popup window you create with window.open.

Syntax for window.external.ShowPopup:

function window.external.ShowPopup(Name, URL, Width, Height, Top, Left, Param); 

Name: name of your popup window.
URL: url to the page that should be displayed. It can be a virtual path to a compiled page or a full URL. Relative paths are not handled.
Width, Height: width and height of the popup window (in pixels).
Left, Top: x and y screen coordinates of the top-left corner (in pixels).
Param: always set the value to 0.

Note: to create a screen-centered popup, set both Left and Top to -1.

All parameters are required.

imgwith HEScript: an internal HEScript procedure Showpopup is available and lets you specify additional parameters for your popup window.

procedure ShowPopup(const Name, URL: String; Width, Height,
 Top, Left: Integer; IsModal, RedirectLinksToMain: Boolean);

Name: name of your popup window.
URL: url to the page that should be displayed. It can be a virtual path to a compiled page or a full URL.
Width, Height: width and height of the popup window (in pixels).
Left, Top: x and y screen coordinates of the top-left corner (in pixels). If both set to -1, the popup appears centered.
IsModal: always set the value to false.
RedirectLinksToMain: whether you want the popup window to redirect all hyperlinks to the main window (when a user clicks a link, the page is displayed in the main window). Could be useful for website contents.

Example: you could associate the following procedure (ShowFirstPopup) with a custom menu command or a toolbar button.

procedure ShowFirstPopup;
begin
 ShowPopup("mypopup", "popup1.htm", 400, 300, 50, 25, false, false);
end;

Test this link code now

Additionally you could add the following HEScript commands to your UserMain script:

{ NewWindow: opens a new popup window. URL : url to the page to display WindowName: name of the popup (for targets and other functions). width: width of the popup height: height of the popup top: y screen position of the popup left: x screen position of the popup redirect: if "1", then all links are redirected to the main window. }

procedure NewWindow(Url, WindowName, Width, Height, Top, Left, Redirect: String);
begin
ShowPopup(WindowName, Url, StrToInt(width), StrToInt(height), StrToInt(top),StrToInt(left), false, Redirect = "1");
end;

In that case, you can now display any popup you want without having to create a specific HEScript function for each popup.
To call the previous NewWindow function from your HTML pages, use:

<a href="hescript://UserMain.newwindow|popup1.html|pop1|200|100|50|80|0">Open a new window</a>

How to close a popup window

imgIf you wish to close the popup window from the popup itself, you can use:

  • window.close (JavaScript):

End users may be prompted by Internet Explorer if they want to close the window.

Test it now

  • window.external.CloseCurrentWindow (JavaScript):

Contrary to the previous one, this function does not ask end users whether they want to close the popup window.

imgIf you wish to close any popup, use window.external.ClosePopup(name) (JavaScript). You just need to know the popup's name (that can be retrieved with the window.name JavaScript property).

Example: Open the popup / Close the popup

This function also exists in HEScript:

procedure ClosePopup(const Name: String);

imgTo close all popup windows, use the HEScript function CloseAllPopups.

procedure CloseAllPopups;

How to modify a popup size/position

You can set up properties for popup windows using the SetUIProp function (available as HEScript or window.external JavaScript extension).

JavaScript Syntax:

window.external.SetUIProp('popup_[name]', 'property name', 'property value');

Available property names are Left (x position), Top (y position), Width, Height, Caption (window title).

Example: we want to move an existing popup to another location. We can use this JavaScript code:

function setpopupxpos() {
window.external.SetUIProp("popup_mypopup","Left","1");
}

Demo:

Open a popup

Set popup left position