Embedded Functionality in HTML...
= Index DOT Html by Brian Wilson =

Justification | Uses for Embedding
More about JavaScript | JavaScript Timelines
Related Sites
Main Index | Element Tree | Element Index | HTML Support History
Justification for Embedding Capabilities in HTML
HTML has developed quite a bit since its beginnings, but let's face it - HTML is only a language meant to attach semantic meaning and rendering cues to documents. In recent history, the scope and functionality of web pages has been extended far beyond the capabilities that mere HTML alone can produce. This has been accomplished by allowing programatic capabilities and embedded objects in the context of the HTML page. HTML has control of the location, size, invocation and other properties of the objects, but their functionality is driven by other technology - Java applications, scripting functionality, Plug-ins and more.

Uses for Embedding Functionality
Java Applets
Java is a programming language (not a document markup language like HTML) that has gained wide acceptance in Web applications. The APPLET element is the HTML interface used to invoke a Java Applet, and the PARAM element is used to pass parameter values to the Java application. The OBJECT element, although not listed under the 'Embedded Functionality' umbrella, also belongs here - one of its many functions is to absorb all of the functionality of the APPLET element.
Web Page Scripting
Scripting languages allow web pages to become dynamic. Scripts allow programmatic logic and actions to be performed in response to events that occur when experiencing a web page. The SCRIPT element allows scripting statements to be included in an HTML Document structure. The NOSCRIPT element is an element used to mark a section of a document for display only in cases of SCRIPT element incompatibility/backward compatibility.
Browser Plug-Ins
The Plug-in technology created by Netscape allows media performance capacity to expand by leaps and bounds. Previously, browsers were limited by their inherent capabilities. Now, a browser can be extensible through the use of a "Plug-In" (usually third party) that allows it to recognize varying non-conventional technologies or media formats that are not actively supported by the browser without the Plug-in. The NOEMBED element is used to mark a section of a document for rendering only in cases of EMBED element incompatibility or for backward compatibility.
In-Line Frames
This is an extension to Netscape's frames concept (static document layout) by Microsoft. It allows other HTML documents to be placed in an HTML document the way one would place an HTML in-line image (IMG.) Coincidentally, this basic concept was the original intent of the EMBED element until Plug-ins were introduced.

More About JavaScript
JavaScript, originally known as LiveScript, was created by Netscape for its Navigator 2.0 version. Microsoft created its own version of JavaScript for Internet Explorer 3.0 called JScript (the name JavaScript is owned by Netscape.) Netscape's version is the original though, and it was the basis for the now-standard EcmaScript.)

The term "Java" in JavaScript appears to be a marketing tie-in with Sun's Java programming language. And that is where the apparent similarities end - JavaScript is NOT a subset of Java:

JavaScript Java
  • A web scripting language developed by Netscape
  • Interpreted (not compiled) by client
  • Object-based. Code uses built-in, extensible objects, but no classes or inheritance
  • Code integrated with, and embedded in HTML
  • Variable data types not declared (loose typing)
  • Dynamic binding. Object references checked at run-time
  • Cannot (yet) automatically write to hard disk
  • A multi-platform programming language developed by Sun.
  • Compiles to byte-codes that are interpreted by a platform-independent "Virtual Machine"
  • Compiled on server before execution on client
  • Object-oriented. Applets consist of object classes with inheritance
  • Applets distinct from HTML (accessed from HTML pages)
  • Variable data types must be declared (strong typing)
  • Static binding. Object references must exist at compile-time
  • Cannot automatically write to hard disk
  • Theoretically secure
Javascript/VBScript Timelines and Standardization
The two main implementations of JavaScript continue to have many differences and incompatibilities. To ease this problem, several companies (including Microsoft and Netscape) have worked with ECMA to create an official accepted specification for the JavaScript language. Known as ECMA-262 or EcmaScript, this standard is now under consideration for standardization by the Industry Standards Organization (ISO) as well. EcmaScript most closely resembles (with a few variations) the version of JavaScript found in Netscape Navigator 3.0 (JavaScript 1.1.)

JavaScript      JScript/VBScript
1.0Nav 2.0x 1.0IE 3.0x
1.1Nav 3.0x 2.0IIS 3.0
1.2Nav 4.0-4.05 3.0IE 4.0x/IIS 4.0
1.3Nav >= 4.06 5.0IE 5.0
ECMAScript Compliant:
JavaScript 1.3 & above; JScript 3.0 & above

Related Sites
Official References
RFC 1866: The HTML 2.0 specification (plain text)
The web version of the HTML 2.0 (RFC 1866) specification
The HTML 3.2 (Wilbur) recommendation
[This is the first inclusion of the APPLET element in an official spec. Scripting is also mentioned in passing.]
The HTML 4.0 Recommendation
[Includes all 2.0, and 3.2 elements plus Script, Noscript and Iframe]
Embed: Netscape's "New HTML 3.0 proposals" page
Java: Sun's official Java site.
ECMA-262 (EcmaScript): Official specification.
JavaScript: Netscape's documentation for the JavaScript language.
VBScript: Microsoft's official documentation for VBScript.
Internet Explorer Tag reference
[Details Applet, Iframe, and Script (Embed is also mentioned, but they recommend OBJECT instead.)]

Java: Sun's Java Tutorial
Java: "Making Sense of Java"
VBScript, Java, XML and others: "DevX"
VBScript: Microsoft's VBScript FAQ

Other Related Links
Java and Javascript: Gamelan/Developer.com
[This site has a ton of resources, tutorials, examples, etc on Java, JavaScript AND VBScript. Gamelan is under "Software Development".]
JavaScript: Netscape list of JavaScript Resources
Plug-ins: Netscape's list of Plug-ins.
Plug-ins: BrowserWatch's "Plug-In Plaza"

Boring Copyright Stuff...