Extended Document Object Model
When you use MenuBox as a browser container you not only inherit the full set of system browser container features (regardless of what the current default browser is), which allow you to use HTML, CSS and JavaScript that will be processed just as it would be in Internet Explorer, but you can tap into a set of additional functions which MenuBox adds to the objects that are normally available within Internet Explorer. This is what is called an extended document object model (DOM). These features allow you to use HTML code to build a project that looks and feels to the user more like a full Windows application than an HTML page, making it possible to open documents, launch applications, quit MenuBox, etc.
Available methods:
- Close()
- Closes the MenuBox window
- Execute()
- Opens a document or executes a file
- Exists()
- Indicates whether a file exists
- ExpandPath()
- Returns the full absolute path, given a relative path or an environment variable
- FindDrive()
- Looks for a drive containing the specified path and file, with optional prompt
- GetNV()
- Returns the value of a MenuBox nonvolatile variable
- GetRegistry()
- Returns the specified registry value, or indicates whether a key exists
- Maximize()
- Maximizes the window
- Message()
- Displays a message dialog with the desired title and message content
- Minimize()
- Minimizes the window
- Move()
- Moves the window, optionally resizing it in the same step
- PlaySound()
- Plays a sound file
- Restore()
- Restores the window
- SetNV()
- Defines a MenuBox nonvolatile variable within the publisher's namespace
- Size()
- Sets the window size
Properties:
- Architecture
- Returns the architecture of the host operating system ("x86" or "x64")
- Language
- Returns the current user locale
- Medium
- Indicates what type of medium MenuBox was started from (hard disk, CD or DVD, other removable device, network drive, etc.)
- MenuBoxVersion
- Returns the MenuBox software version
- Title
- Gets or sets the MenuBox window title
The extended properties and methods can be accessed either via the Window.External object, or via an optional JavaScript layer provided with MenuBox, which includes fallback functionality when testing in a browser or authoring environment. For example, the MenuBox window can be closed either by invoking window.external.close(), or by executing menubox_close(). These intermediate JavaScript functions provided in the redistributable menubox.js file can safely be used instead regardless of operating system and browser version, i.e. not only inside MenuBox. As such, they are great for testing your code in a browser or authoring environment, and for legacy support (even version 3 browsers are supported).
The functions of the extended DOM operate with the privileges of the MenuBox application. When MenuBox is used to operate a kiosk-like environment with general access to untrusted internet sites, the use of privileged functions can be restricted with the NoExecute and NoRegistry keys (which are set in the menubox.ini configuration file).
Navigation
MenuBox also incorporates a transparent system to allows links to other pages to simply work "as intended", without special scripting or ActiveX:
- HTML links intended to open in a new window (e.g. with target="_blank") are opened with the system default browser
- Other HTML links open within the same MenuBox container window, unless specified otherwise