Table of Contents:
Microsoft Unsupported Functions

Workarounds Available:
arity
border
captureEvents
current
disableExternalCapture
enableExternalCapture
FileUpload
getSelection
handleEvent
home
innerHeight
innerWidth
layer
layers
locationbar
menubar
moveBy
moveTo
OnAbort
OnMove
OnReset
opener
outerHeight
outerWidth
pageXOffset
pageYOffset
personalbar
Plugin
print
releaseEvents
resizeBy
resizeTo
routeEvent
screen
scrollbars
scrollBy
scrollTo
shift
statusbar
stop
toolbar

No Workarounds Available:
 
complete
description
export
fileName
find
hspace
import
lowsrc
next
preference
previous
refresh
search
splice
split
suffixes
taint
untaint
vspace


arity

Areas Affected:
Javascript 1.2 new Functions



Background Information:
The latest release of JavaScript, 1.2, has functionality embedded into it for determining the number of arguments that will are expected for a function call. That feature comes in the form of functionName.arity.

Example:

if (myFunction.arity == 3)
   myFunction(x, y, z)
else
   myFunction(x, y)



Workaround:
 
JScript 3.0 // "function" is any function name 
function_name.arguments.length()
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
captureEvents, getSelection, handleEvent, releaseEvents, scrollTo, scrollBy, routeEvent, screen, scrollbars, innerHeight, innerWidth, locationbar, menubar, outerHeight, outerWidthpersonalbar, toolbar, disableExternalCapture, enableExternalCapture, moveBy, moveTo, print, stop, home, statusbar, titlebar, border

Area Affected
Microsoft's objects:
document's properties: bgColor, charset, activeElement, aLinkColor, BODY, cookie, defaultCharset, domain, expand, fgColor, fileCreatedDate, fileModifiedDate, fileSize, lastModified, linkColor, location, parentWindow, protocol, readyState, selection, TITLE, uniqueID, URL, vlinkColor
document's colletions: all, anchors, children, embeds, forms, frames, images, links, scripts, styleSheets
document's methods: attachEvent, clear, close, createElement, createStyleSheet, detachEvent, elementFromPoint, execCommand, open, queryCommandEnabled, queryCommandIndeterm, queryCommandState, queryCommandSupported, queryCommandValue, recalc, write, writeln.
document's events: onclick, ondblclick, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, onhelp, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, on mouseout, onmouseover, onmouseup, onpropertychange, onreadystatechange
window's properties: name, clientInformation, closed, complete, defaultStatus, dialogArguments, dialogHeight, dialogLeft, dialogTop, dialogWidth, document, event, external, frames, history, length, location, navigator, offscreenBuffering, opener, parent, returnValue, screen, screenLeft, screenTop, self, status, top
window's methods: alert, attachEvent, blur, clearInterval, clearTimeout, close, confirm, detachEvent, execScript, focus, moveBy, moveTo, navigate, open, prompt, resizeBy, resizeTo, scroll, scrollBy, scrollTo, setInterval, setTimeout, showHelp, showModelDialog
window's events: onbeforeunload, onblur, onerror, onfocus, onhelp, onload, onresize, onunload.

Netscape's document object:
document's properties: alinkColor, anchors, applets, bgColor, cookie, domain, embeds, fgColor, formName, forms, images, lastModified, layers, linkColor, links, plugins, referrer, title, URL, vlinkColor.
document's methods: captureEvents, close, getSelection, handleEvent, open, releaseEvents, routeEvent, write, writeln.
document's events: onClick, onDblClick, onKeyDown, onKeypress, onKeyUp, onMouseDown, onMouseUp
window's properties: closed, defaultStatus, document, frames, history, innerHeight, innerWidth, length, location, locationbar, menubar, name, opener, outerHeight, outerWidth, pageXOffset, pageYOffset, parent, personalbar, scrollbars, self, status, statusbar, toolbar, top, window
window's methods: alert, back, blur, captureEvents, clearInterval, clearTimeout, close, confirm, disableExternalCapture, enableExternalCapture, find, focus, forward, handleEvent, home, moveBy, moveTo, open, print, prompt, releaseEvents, resizeBy resizeTo, routeEvent, scroll, scrollBy, scrollTo, setInterval, setTimeout, stop
window's events: onBlur, onDragDrop, onError, onFocus, onLoad, onMove, onResize, onUnload

CSS Properties
Font and Text Properties: fontFamily, fontSize, fontStyle, fontVariant, fontWeight, font, letterSpacing, lineHeight, wordSpacing, textAlign, textDecoration, textIndent, textTransform, verticalAlign
Colors and Background Properties: color, backgroundAttachment, backgroundColor, backgroundImage, backgroundPosition, backgroundRepeat, background
Box/Layout Properties: borderBottomColor, borderLeftColor, borderRightColor, borderTopColor, borderColor, borderBottomStyle, borderLeftStyle, borderRightStyle, borderTopStyle, borderStyle, borderBottomWidth, borderLeftWidth, borderRightWidth, borderTopWidth, borderWidth, borderBottom, borderLeft, borderRight, borderTop, border, clear, float, marginBottom, marginLeft, marginRight, marginTop, margin, paddingBottom, paddingLeft, paddingRight, paddingTop, padding
Positioning Properties: clop, height, left, overflow, position, top, visibility, width, zIndex
Other Properties: display, cursor, listStyleImage, listStylePosition, listStyleType, listStyle



Background
Dynamic HTML gives the developer full control over their web page. Dynamic HTML in Microsoft's Internet Explorer 4.0 provides complete access to every element, every style, all the content on the page, as well as any user event anywhere on the page.
Netscape Navigator 4.0 on the other hand, only supports events on a few elements and support for CSS-Positioning, and does not have the ability to change the style nor access the content on the page.
Therefore, when designing for both browsers, you need to look for a common ground or you need to clearly understand the browser's capabilities and work around them as appropriate. The common ground for Dynamic HTML is CSS Positioning. While the syntax for positioning elements is the same, the object model for animating and responding to user events is different.



Workaround
This is why DHTMLLib is designed. DHTMLLib is a cross-browser solution for developing pages with CSS positioning. Different from most cross-browser solutions, DHTMLLib not only allows you to animate positioned elements, but you also have access to the user's events. For events, Internet Explorer's powerful event bubbling model is emulated in Netscape for positioned elements, allowing you to write generic, reusable code.
With this library, it resolves most of the incompatibility issues regarding layers, CSS positioning, event handling, write your code with IE4's object model (DOM) and it will run on both 4.0 browsers.

To use this library, you need to include the file, http://www.insidedhtml.com/positioning/dhtmlLib.js, in your script as follows:
<SCRIPT SRC="http://www.insidedhtml.com/positioning/dhtmllib.js" LANGUAGE="Javascript"></SCRIPT>
Table of Contents



References
Article "DHTML Library", http://www.insidedhtml.com/positioning/home.htm

complete

Areas Affected:
Javascript 1.1 Properties



Background Information:
A boolean function that will return the current state of an image that is true if the image is completely loaded and false otherwise. 

Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents

current

Areas Affected:
Javascript 1.1 Functions



Background Information:
This is a property of the history object. The history object is an array that holds a list of all URLs that the browser has navigated to. current returns a string of the URL linked/attached to the page currently loaded in the browser.

In JavaScript 1.1, current can only be used when data tainting is enabled
in JavaScript 1.2, current can only be used in a signed script with the 'UniversalBrowserRead' privilege enabled.



Workaround:
 
JScript 3.0 See JScript 1.0 Workaround
JScript 2.0 See JScript 1.0 Workaround
JScript 1.0 document.url()
VBScript 3.0 No Workaround exists

Table of Contents
 

description

Areas Affected:
Javascript 1.1 Properties



Background Information:
For MimeType objects, this property provides a description of the data associated with the MIME type. For Plugin objects, this property provides a description of the plug-in; its value is set by the plug-in.


Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents

enabledPlugin

Areas Affected:
Javascript 1.1 Properties



Background Information:
This is a property of the MimeType external object. If Plug-ins have been enabled within the browser, this property will return a handle to the plugin object.


Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents

export

Areas Affected:
Javascript 1.2 new Functions



Background Information:
This is a keyword used by signed scripts to make other objects, properties and methods available to other scripts.


Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

fileName

Areas Affected:
Javascript 1.2 new Functions



Background Information:
The filename property is the plug-in program's file name and is supplied by the plug-in itself. This name may vary from platform to platform.



Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

FileUpload

Areas Affected:
Javascript 1.1 Function



Background Information:
This is a class that represents a file upload box in an HTML form. When a page loads, all file Upload boxes will have a FileUpload object created for it which you can reference.



Workaround:
 
JScript 3.0 Workarounds can be found within the Input Objects in DOM 1.0
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

find

Areas Affected:
Javascript 1.2 new Functions



Background Information:
When a string is specified, the browser performs a case insensitive, forward search. If a string is not specified, the method displays the Find dialog box, allowing the user to enter a search string.


Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

hspace

Areas Affected:
Javascript 1.1 Property



Background Information:
Returns the distance, in pixels, between the left and right edges of an image and the surrounding text.


Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

import

Areas Affected:
Javascript 1.2 Keyword



Background Information:
This keyword is used to allow a script to access the variables of a signed script which have been made available by the export statement.


Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents

layer, layers

Areas Affected:
Layer's Properties: above, background, bgColor, below, clip.bottom, clip.height, clip.left, clip.right, clip.top, clip.width, document, left, name, pageX, pageY, parentLayer, siblingAbove, siblingBelow, src, top, visibility, zIndex
Layer's Methods: captureEvents, handleEvent, load, moveAbove, moveBy, moveTo, moveToAbsolute, releaseEvents, resizeBy, resizeTo, routeEvent.
Layer's Events: onBlur, onFocus, onLoad, onMouseOut, onMouseOver.

IFrame's Properties: accessKey, align, dataFld, dataSrc, frameBorder, frameSpacing, hspace, id, lang, language, marginHeight, marginWidth, name, noResize, scrolling, src, style, tabIndex, title, vspace, innerHTML, innerText, isTextEdit, offsetHeight, offsetLeft, offsetParent, offsetTop, offsetWidth, outerHTML, outerText, parentElement, parentTextEdit, recordNumber, sourceIndex, style, tagName, uniqueID
IFrame's Methods: attachEvent, blur, contains, detashEvent, focus, getAttribut, insertAdjacentHTML, insertAdjacentText, removeAttribute, scrollIntoView, setAttribute



Background Information:
Both NN4 specific Layer element and IE4/HTML 4 IFrame element allow you to place content at an absolute position and embed other documents within one's web page. However, there are some significant differences between these two elements which make them not fully interchangeable.


Workaround:
In the article "Targeting Layers", , the author gives Layers and IFrames dual identities. And shows how to make layers act as a link target just like a frame and make IFrames remove their border and automatically size to their contents.

Targeting Layers: http://www.insidedhtml.com/tips/contents/ts10/page1.asp
Table of Contents

lowsrc

Areas Affected:
Javascript 1.1 Image Property



Background Information:
A string specifying the URL of a low resolution version of an image to be displayed in a document.
The lowsrc property initially reflects the LOWSRC attribute of the <IMG> tag. Navigator loads the smaller image specified by lowsrc and then replaces it with the larger image specified by the src property. You can change the lowsrc property at any time.


Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

MimeType

Areas Affected:
Javascript 1.1 Object



Background Information:
Provides information about a MIME data type that the browser supports. Scripts can reference navigator.mimeTypes array by either a numeric index or by a string index specifying the type of the desired object.


Workaround:
 
JScript 3.0 see Navigator.mimeTypes collections within the toolbox reference window. 

The following code displays the type, description, suffixes, and enabledPlugin properties for each MimeType object on a client: 

document.writeln("<TABLE BORDER=1><TR VALIGN=TOP>", 
                       "<TH ALIGN=left>", 
                       "<TH ALIGN=left>type", 
                       "<TH ALIGN=left>description", 
                       "<TH ALIGN=left>suffixes", 
                       "<TH ALIGN=left>enabledPlugin.name</TR>") 
for (i=0; i < navigator.mimeTypes.length; i++) { 
   document.writeln("<TR VALIGN=TOP><TD>", 
    i, 
    "<TD>", 
    navigator.mimeTypes[i].type, 
    "<TD>", 
    navigator.mimeTypes[i].description, 
    "<TD>", 
    navigator.mimeTypes[i].suffixes) 
    if (navigator.mimeTypes[i].enabledPlugin==null) { 
          document.writeln("<TD>None", 
          "</TR>") 
    } else { 
        document.writeln( 
            "<TD>", 
            navigator.mimeTypes[i].enabledPlugin.name, 
            "</TR>") 
   } 

document.writeln("</TABLE>")

JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents

next

Areas Affected:
Javascript 1.1 Tainted Signed Scripts



Background Information:
This is relative to the history object only. A string specifying the complete URL of the next history entry. This property is tainted by default. It has no value of data tainting is disabled. For information on data tainting, see "JavaScript Security". Navigator 4.0: Getting the value of this property requires the UniversalBrowserRead privilege. It has no value if you do not have this privilege.



Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

OnAbort, OnDragDrop, OnMove, OnReset

Areas Affected:
Events, Event Handler, Event Model
Microsoft's Event Model:
event object's properties: altKey, button, cancelBubble, clientX, clientY, ctrlKey, dataFld, dataTransfer, fromElement, keyCode, offsetX, offsetY, propertyName, reason, recordset, returnValue, screenX, screenY, shiftKey, srcElement, srcFilter, toElement, type, x, y.
Microsoft's Events: onabort, onafterupate, onbeforecopy, onbeforecut, onbeforepaste, onbeforeunload, onbeforeupdate, onblur, onbounce, oncellchange, onchange, onclick, oncopy, oncut, ondataavailable, ondatasetchanged, ondatasetcomplete, ondblclick, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, onerror, onerrorupdate, onfilterchange, onfinish, onfocus, onhelp, onkeydown, onkeypress, onkeyup, onload, onlosecapture, onmousedown, onmousemove, onmouseout, onmouseover, onmouseup, onpaste, onpropertychange, onreadystatechange, onreset, onresize, onrowenter, onrowexit, onrowsdelete, onrowsinserted, onscroll, onselect, onselectstart, onstart, onsubmit, onunload.

Netscape's Event Model:
event object's properties: data, height, layerX, layerY, modifiers, pageX, pageY, screenX, screenY, target, type, which, width
Netscape's Events: onAbort, onBlur, onChange, onClick, onDblClick, onDragDrop onError, onFocus, onKeyDown, onKeyPress, onKeyUp, onLoad, onMouseDown, onMouseMove, onMouseOut, onMouseOver, onMouseUp, onMove, onReset, onResize, onSelect, onSubmit, onUnload



Background Information:
Netscape's JavaScript 1.2 has a very different event model from Internet Explorer's.  In fact, they are reversed.  For example, clicking on a hypertext link would cause the following event handlers to be called:

Microsoft:
1. Link
2. Layer
3. document
4. window
5. default handler
Netscape:
1. Window
2. document
3. layer
4. link
5. default handler

Microsoft uses an event bubbling model.  Event bubbling is a process in which the object associated with where the event happened receives the event first.  This object then choose to process the event or pass it along to its parent object.
NN4 uses an event capturing model, the opposite of an event bubbling model. Rather than events being generated by the bottom most object in the hierarchy, then bubbled up, events in the event capturing model are generated at the top of the object hierarchy and then fall through to events lower in the hierarchy.  A limited number of page elements can generate and process events. For example, onMouseOver is handled only images and links.



Workaround:

To write scripts that will work in both browser's, don't use the feature of passing any events to parent event handlers, since the passing order is reversed in the two browsers.  Instead, handle each event in a single function.  Also, use only the events defined for the Netscape browser, since those will work in both.

References
1) Bubble Power: Event Handling in Internet Explorer 4.0 http://www.microsoft.com/workshop/author/script/ie4event.asp
2) Dynamic HTML and The New Event Models http://www.dhtmlzone.com/articles/eventmodels.html
3) Cross Browser Dynamic HTML http://www.dhtmlzone.com/articles/dhtml.html
Table of Contents

pageXOffsetpageYOffset, personalbar, Plugin, resizeBy, resizeTo, scrollbars, opener

Areas Affected:
Microsoft's objects:
document's properties: bgColor, charset, activeElement, aLinkColor, BODY, cookie, defaultCharset, domain, expand, fgColor, fileCreatedDate, fileModifiedDate, fileSize, lastModified, linkColor, location, parentWindow, protocol, readyState, selection, TITLE, uniqueID, URL, vlinkColor
document's colletions: all, anchors, children, embeds, forms, frames, images, links, scripts, styleSheets
document's methods: attachEvent, clear, close, createElement, createStyleSheet, detachEvent, elementFromPoint, execCommand, open, queryCommandEnabled, queryCommandIndeterm, queryCommandState, queryCommandSupported, queryCommandValue, recalc, write, writeln.
document's events: onclick, ondblclick, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, onhelp, onkeydown, onkeypress, onkeyup, onmousedown, onmousemove, on mouseout, onmouseover, onmouseup, onpropertychange, onreadystatechange
window's properties: name, clientInformation, closed, complete, defaultStatus, dialogArguments, dialogHeight, dialogLeft, dialogTop, dialogWidth, document, event, external, frames, history, length, location, navigator, offscreenBuffering, opener, parent, returnValue, screen, screenLeft, screenTop, self, status, top
window's methods: alert, attachEvent, blur, clearInterval, clearTimeout, close, confirm, detachEvent, execScript, focus, moveBy, moveTo, navigate, open, prompt, resizeBy, resizeTo, scroll, scrollBy, scrollTo, setInterval, setTimeout, showHelp, showModelDialog
window's events: onbeforeunload, onblur, onerror, onfocus, onhelp, onload, onresize, onunload.

Netscape's document object:
document's properties: alinkColor, anchors, applets, bgColor, cookie, domain, embeds, fgColor, formName, forms, images, lastModified, layers, linkColor, links, plugins, referrer, title, URL, vlinkColor.
document's methods: captureEvents, close, getSelection, handleEvent, open, releaseEvents, routeEvent, write, writeln.
document's events: onClick, onDblClick, onKeyDown, onKeypress, onKeyUp, onMouseDown, onMouseUp
window's properties: closed, defaultStatus, document, frames, history, innerHeight, innerWidth, length, location, locationbar, menubar, name, opener, outerHeight, outerWidth, pageXOffset, pageYOffset, parent, personalbar, scrollbars, self, status, statusbar, toolbar, top, window
window's methods: alert, back, blur, captureEvents, clearInterval, clearTimeout, close, confirm, disableExternalCapture, enableExternalCapture, find, focus, forward, handleEvent, home, moveBy, moveTo, open, print, prompt, releaseEvents, resizeBy, resizeTo, routeEvent, scroll, scrollBy, scrollTo, setInterval, setTimeout, stop
window's events: onBlur, onDragDrop, onError, onFocus, onLoad, onMove, onResize, onUnload

CSS Properties
Font and Text Properties: fontFamily, fontSize, fontStyle, fontVariant, fontWeight, font, letterSpacing, lineHeight, wordSpacing, textAlign, textDecoration, textIndent, textTransform, verticalAlign
Colors and Background Properties: color, backgroundAttachment, backgroundColor, backgroundImage, backgroundPosition, backgroundRepeat, background

Box/Layout Properties: borderBottomColor, borderLeftColor, borderRightColor, borderTopColor, borderColor, borderBottomStyle, borderLeftStyle, borderRightStyle, borderTopStyle, borderStyle, borderBottomWidth, borderLeftWidth, borderRightWidth, borderTopWidth, borderWidth, borderBottom, borderLeft, borderRight, borderTop, border, clear, float, marginBottom, marginLeft, marginRight, marginTop, margin, paddingBottom, paddingLeft, paddingRight, paddingTop, padding
Positioning Properties: clop, height, left, overflow, position, top, visibility, width, zIndex
Other Properties: display, cursor, listStyleImage, listStylePosition, listStyleType, listStyle



Background

Dynamic HTML gives the developer full control over their web page. Dynamic HTML in Microsoft's Internet Explorer 4.0 provides complete access to every element, every style, all the content on the page, as well as any user event anywhere on the page.

Netscape Navigator 4.0 on the other hand, only supports events on a few elements and support for CSS-Positioning, and does not have the ability to change the style nor access the content on the page.
Therefore, when designing for both browsers, you need to look for a common ground or you need to clearly understand the browser's capabilities and work around them as appropriate. The common ground for Dynamic HTML is CSS Positioning. While the syntax for positioning elements is the same, the object model for animating and responding to user events is different.



Workaround

This is why DHTMLLib is designed. DHTMLLib is a cross-browser solution for developing pages with CSS positioning. Different from most cross-browser solutions, DHTMLLib not only allows you to animate positioned elements, but you also have access to the user's events. For events, Internet Explorer's powerful event bubbling model is emulated in Netscape for positioned elements, allowing you to write generic, reusable code.

With this library, it resolves most of the incompatibility issues regarding layers, CSS positioning, event handling, write your code with IE4's object model (DOM) and it will run on both 4.0 browsers.

To use this library, you need to include the file, http://www.insidedhtml.com/positioning/dhtmlLib.js, in your script as follows:

<SCRIPT SRC="http://www.insidedhtml.com/positioning/dhtmllib.js" LANGUAGE="Javascript"></SCRIPT>

References
Article "DHTML Library", http://www.insidedhtml.com/positioning/home.htm
Table of Contents

platform

Areas Affected:
Javascript 1.2 



Background Information:
Identifies the operating system for which the browser was compiled.  Possible values include "Win32", "Win16", "Mac68k", "MacPPC", and various UNIX types.


Workaround:
 
JScript 3.0 The most common means of getting user information in IE is through: 
Window.ClientInformation()
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

pop

Areas Affected:
Javascript 1.2 new Functions



Background Information:
Removes the last element from an array and returns that element. This method changes the length of the array.

Example:

The following code displays the myFish array before and after removing its last element. It also displays the removed element:

myFish = ["angel", "clown", "mandarin", "surgeon"];document.writeln("myFish before: " + myFish);
popped = myFish.pop();
document.writeln("myFish after: " + myFish);
document.writeln("popped this element: " + popped);

This example displays the following:
myFish before: ["angel", "clown", "mandarin", "surgeon"]
myFish after: ["angel", "clown", "mandarin"] popped this element: surgeon



Workaround:
 
JScript 3.0 //returns a new array of arr.length-1 with last element removed. 
function PopJS11(arr) { 
    if (arr.length <=1) { return new Array ();    } 

    var newarr = new Array(arr.length-1); 
    for ( var i=0; i<(arr.length -1); i++ ) 
    { newarr[i] = arr[i]; } 
    return newarr; 
}

JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

preference

Areas Affected:
Javascript 1.2 Signed Scripts 



Background Information:
Reads and sets the browser user preferences.

Example:
reading preference
navigator.preference(pref);

setting preference
navigator.preference(pref, setting);



Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

previous

Areas Affected:
Javascript 1.1 Tainted



Background Information:
Returns the URL of the previous document that was displayed within the browser window or the page that would be displayed if the user click the back button. This deals with the history object only.


Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

push

Areas Affected:
Javascript 1.2 new Functions



Background Information:
Adds one or more elements to the end of an array and returns that last element added. This method changes the length of the array. The behavior of the push method is analogous to the push function in Perl 4. Note that this behavior is different in Perl 5.

Example:
The following code displays the myFish array before and after adding elements to its end. It also displays the last element added:

myFish = ["angel", "clown"];
document.writeln("myFish before: " + myFish);
pushed = myFish.push("drum", "lion");
document.writeln("myFish after: " + myFish);
document.writeln("pushed this element last: " + pushed);

This example displays the following:
myFish before: ["angel", "clown"]
myFish after: ["angel", "clown", "drum", "lion"]  pushed this element last: lion



Workaround:
 
JScript 3.0 //returns a new array of arr.length+1 with 'data' appended. 
function PushJS11(arr, data) { 
    arr[arr.length] = data; 
    return arr; 
}
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

refresh

Areas Affected:
Javascript 1.1



Background Information:
When the user installs a plug-in, the plug-in cannot be used until the browser has been closed and reopened, or until the refresh() method is used. This method will refresh the plugins array, making the newly installed plug-in available. If the reload argument is true, Navigator also reloads all open documents that contain <EMBED> tags.


Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents

search

Areas Affected:
Javascript 1.0 Tainted



Background Information:
Modifying search causes the window to be reloaded using the new URL. Note, however, that it is considered safer to set the href property to ensure that the entire URL is correctly updated. Queries are used in http:// URLs to request specific information.

Example:

window.location.search = "?qt=ben+jerry&col=WW&Search.x=45&Search.y=9"



Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

shift

Areas Affected:
Javascript 1.2 new Functions



Background Information:
Removes the first element from an array and returns that element. This method changes the length of the array.

Example:

The following code displays the myFish array before and after removing its first element. It also displays the removed element:

myFish = ["angel", "clown", "mandarin", "surgeon"];
document.writeln("myFish before: " + myFish);
shifted = myFish.shift();
document.writeln("myFish after: " + myFish);
document.writeln("Removed this element: " + shifted);

This example displays the following:
myFish before: ["angel", "clown", "mandarin", "surgeon"]
myFish after: ["clown", "mandarin", "surgeon"]
Removed this element: angel



Workaround:
 
JScript 3.0 function ShiftJS11(arr) { 
    if (arr.length <=1) { return new Array ();    } 

    var newarr = new Array(); 
    for ( var i=1; i<(arr.length); i++ ) 
    { newarr[i-1] = arr[i]; } 
    return newarr; 
}

JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

splice

Areas Affected:
Javascript 1.2 new Functions



Background Information:
Changes the content of an array, adding new elements while removing old elements. If you specify a different number of elements to insert than the number you're removing, the array will have a different length at the end of the call. If howMany is 1, this method returns the single element that it removes. If howMany is more than 1, the method returns an array containing the removed elements.

Example:
The following script illustrate the use of splice:

<SCRIPT LANGUAGE="JavaScript1.2">
myFish = ["angel", "clown", "mandarin", "surgeon"];
document.writeln("myFish: " + myFish + "<BR>");
removed = myFish.splice(2, 0, "drum");
document.writeln("After adding 1: " + myFish);
document.writeln("removed is: " + removed + "<BR>");
removed = myFish.splice(3, 1)
document.writeln("After removing 1: " + myFish);
document.writeln("removed is: " + removed + "<BR>");
removed = myFish.splice(2, 1, "trumpet")
document.writeln("After replacing 1: " + myFish);
document.writeln("removed is: " + removed + "<BR>");
removed = myFish.splice(0, 2, "parrot", "anemone", "blue")
document.writeln("After replacing 2: " + myFish);
document.writeln("removed is: " + removed);
</SCRIPT>

This script displays:

myFish: ["angel", "clown", "mandarin", "surgeon"]
After adding 1: ["angel", "clown", "drum", "mandarin", "surgeon"]
removed is: undefined
After removing 1: ["angel", "clown", "drum", "surgeon"]
removed is: mandarin
After replacing 1: ["angel", "clown", "trumpet", "surgeon"]
removed is: drum
After replacing 2: ["parrot", "anemone", "blue", "trumpet", "surgeon"]
removed is: ["angel", "clown"]



Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

split

Areas Affected:
Javascript 1.1



Background Information:
Splits a String object into an array of strings by separating the string into substrings. The split method returns the new array.
When found, separator is removed from the string and the substrings are returned in an array. If separator is omitted, the array contains one element consisting of the entire string.

In Navigator 4.0, Split has the following additions:
It can take a regular expression argument, as well as a fixed string, by which to split the object string. If separator is a regular expression, any included parenthesis cause submatches to be included in the returned array. It can take a limit count so that it won't include trailing empty elements in the resulting array.

Examples

Example 1. The following example defines a function that splits a string into an array of strings using the specified separator. After splitting the string, the function displays messages indicating the original string (before the split), the separator used, the number of elements in the array, and the individual array elements.

function splitString (stringToSplit,separator) {
arrayOfStrings = stringToSplit.split(separator)
document.write ('<P>The original string is: "' + stringToSplit + '"')
document.write ('<BR>The separator is: "' + separator + '"')
document.write ("<BR>The array has " + arrayOfStrings.length + " elements: ")
   for (var i=0; i < arrayOfStrings.length; i++) {
    document.write (arrayOfStrings[i] + " / ")
  }
}
var tempestString="Oh brave new world that has such people in it."var
var space=" "
var comma=","
splitString(tempestString,space)
This example produces the following output:

The original string is: "Oh brave new world that has such people in it."The separator is: " "The array has 10 elements: Oh / brave / new / world / that / has / such / people / in / it. /



Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents

suffixes

Areas Affected:
Javascript 1.2 new Functions



Background Information:
Returns a string listing file name suffixes (also called extensions) that Navigator recognizes as data for MIME type.


Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

taint

Areas Affected:
Javascript 1.1 



Background Information:
Starting with Navigator 2.02, the browser restricted scripts from passing private information - such as session histories and directory structures - to different servers. In Navigator 3, a feature called data tainting was introduced which when enbabled, if a script attempts to transfer tainted data, Navigator opens a dialog box notifying the user of the transfer, and allowing the user to cancel it if desired. Some objects and properties are tainted by default, but you can add tainting to data or scripts that are normally untainted using taint().

Example:
To taint the src property of a layer object, which is not normally tainted, use a statement such as:

layer1.src = taint(layer1.src)



Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents

unshift

Areas Affected:
Javascript 1.2 new Functions



Background Information:
Adds one or more elements to the beginning of an array and returns the new length of the array.

Example:
The following code displays the myFish array before and after adding elements to it.

myFish = ["angel", "clown"];
document.writeln("myFish before: " + myFish);
unshifted = myFish.unshift("drum", "lion");
document.writeln("myFish after: " + myFish);
document.writeln("New length: " + unshifted);

This example displays the following:
myFish before: ["angel", "clown"]
myFish after: ["drum", "lion", "angel", "clown"]



Workaround:
 
JScript 3.0 //returns a new array of arr.length+1 with 'data' appended. 
function UnShiftJS11(arr, data) { 
    var newarr = new Array () 
    newarr[0] = data; 
    for ( var i=0; i<arr.length; i++ ) { 
    newarr[i+1] = arr[i]; 
    } 
    return newarr; 
}
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents
 

untaint

Areas Affected:
Javascript 1.1 



Background Information:
Starting with Navigator 2.02, the browser restricted scripts from passing private information - such as session histories and directory structures - to different servers. In Navigator 3, a feature called data tainting was introduced which when enbabled, if a script attempts to transfer tainted data, Navigator opens a dialog box notifying the user of the transfer, and allowing the user to cancel it if desired. Some objects and properties are tainted by default. untaint() removes tainting from them, as well as from objects that were tainted using the taint() function.



Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents

vspace

Areas Affected:
Javascript 1.1 



Background Information:
Returns the distance, in pixels, between the top and bottom edges of an image and the surrounding text.


Workaround:
 
JScript 3.0 No Workaround exists
JScript 2.0 No Workaround exists
JScript 1.0 No Workaround exists
VBScript 3.0 No Workaround exists

Table of Contents