InScript

(Beta version 2000-12-07)

What is InScript?

InScript is the scripting language used by iCab to generate HTML documents dynamically. The core language is compatible with ECMAScript.

At present InScript features roughly the functionality of Netscape's JavaScript 1.1 or Microsoft's JScript and many extensions of newer versions.

A demo of the possibilities you'll find here.

 

Restrictions of the beta version

Warning: At the moment no security policy is implemented in InScript, i.e. every frame in one window can access all other frames in that window without any restrictions. Who considers this too dangerous has to switch off InScript in "Preferences - InScript".

The Document Object Model (DOM) is still missing some parts. Especially many W3C-DOM level 1standard objects are still missing.

Some scripts might cause problems because they require JavaScript 1.2 (or later), but fail to declare this in the SCRIPT tag.

 

Bugs

If iCab crashes on certain web pages, but it does not crash on these pages if InScript is turned off in the "Preferences", please report the URL to the iCab support.

 

Technical comments

InScript implements the 2nd edition of the ECMA-262 standard ("ECMAScript"). Therefore it has roughly all the features of JavaScript 1.1. It also features most of the 3rd edition of ECMAScript. But as ECMA262-3 is not supported completely yet, InScript only executes scripts with a LANGUAGE attribute of "JavaScript" and "JavaScript1.1".

Compared to newer versions of JavaScript the following parts of the language are missing:

As soon as ECMA262-3 has been implemented completely (which is roughly equivalent to JavaScript 1.5), DOM level 1 (and later on level 2) can be realized.

At the moment InScript implements properties defined by the DOM (mainly level 0) and some Navigator/Explorer extensions as follows:

ObjectProperties
Event altKey, clientX, clientY, ctrlKey, modifiers, pageX, pageY, screenX, screenY, shiftKey, srcElement, target, type
HTMLAnchorElement (inherits from Link)
charset, hreflang, rel, rev, text, type, x,y
HTMLAreaElement (inherits from Link)
alt, noHref
HTMLCollection item, length
HTMLDocument (inherits from HTMLElement)
activeElement, alinkColor, anchors, applets, bgColor, body, charset, close, cookie, defaultCharset, domain, embeds, fgColor, getSelection, images, lastModified, linkColor, links, location, open, parentWindow, plugins, referrer, scripts, title, URL, vlinkColor, write, writeln
HTMLElement all, className, dir, document, getAttribute, id, innerHTML, innerText, insertAdjacentHTML, insertAdjacentText, lang, length, name, outerHTML, outerText, parentElement, removeAttribute, setAttribute, sourceIndex, tagName, title
HTMLFormElement (inherits from HTMLElement)
acceptCharset, action, elements, encoding, enctype, method, reset, submit, target
HTMLImageElement (inherits from HTMLElement)
align, alt, border, complete, height, hspace, isMap, longDesc, lowsrc, lowSrc, src, useMap, vspace, width
HTMLInputElement (inherits from HTMLElement)
blur, click, disabled, focus, form, select, type, value
(Checkbox and Radio elements: checked, defaultChecked)
HTMLOptionElement (inherits from HTMLInputElement)
defaultSelected, index, selected, text
HTMLScriptElement (inherits from HTMLElement)
charset, defer, event, htmlFor, src, text, type
HTMLSelectElement (inherits from HTMLInputElement)
multiple, options, selectedIndex, size, value, options.selectedIndex
Image complete, height, src, width
Link (internal) (inherits from HTMLElement)
coords, hash, host, hostname, href, pathname, port, protocol, search, shape, target
Option defaultSelected, index, selected, text, value
Window alert, back, blur, clearInterval, clearTimeout, clientInformation, close, closed, confirm, debug, defaultStatus, Event, event, focus, forward, frames, history, home, length, location, moveBy, moveTo, name, navigate, navigator, open, opener, parent, print, prompt, resizeBy, resizeTo, screen, ScriptEngine, ScriptEngineBuildVersion, ScriptEngineMajorVersion, ScriptEngineMinorVersion, scroll, scrollBy, scrollTo, self, setInterval, setTimeout, status, stop, top

A list of known and fixed bugs you'll find here.

More links on JavaScript you'll find here.

 

Version history

iCab Pre 2.3
iCab Pre 2.2
iCab Pre 2.1a
iCab Pre 2.1
iCab Pre 2.0
iCab Pre 1.9a
iCab Pre 1.9
First public InScript beta version.

InScript - Copyright ©2000 by Thomas Much.