DOM Level Test - document.implementation.hasFeature

This section provides a tutorial example of using the document.implementation.hasFeature() method to test DOM levels supported in a particular Web browser.

In DOM Level 1, 2, and 3 specifications, there is one method that will level you to test what levels of DOM specifications are supported in a specific Web browser: document.implementation.hasFeature(feature, level). It returns true, if the specified feature and level is supported by the Web browser. Note that the level must be specified in the dot format like 1.0, 2.0, or 3.0.

I used this method in the tutorial example to test what levels of DOM are supported by Web browsers on my machine.

<html>
<!-- DOM_Level_Test.html
   Copyright (c) 2013 by Dr. Herong Yang, herongyang.com
-->
<head>
<title>DOM Level Test</title>
</head>
<body><pre>
<script type="text/javascript">
   document.writeln("\nDOM Level 0 Test:");
   document.writeln("   document.bgColor = "+document.bgColor);

   for (var i=1; i<4; i++) {
      document.writeln("\nDOM Level "+i+".0 Test:");
      document.writeln("   Core "+i+".0 = "
         + document.implementation.hasFeature("Core", i+".0"));
      document.writeln("   HTML "+i+".0 = "
         + document.implementation.hasFeature("HTML", i+".0"));
   }
</script>
</pre></body>
</html>

When I use this script to test Internet Explorer 6.0, the result shows that DOM Core Level 1 is not supported. But DOM HTML Level 1 is supported, very strange.

DOM Level 0 Test:
   document.bgColor = #ffffff

DOM Level 1.0 Test:
   Core 1.0 = false
   HTML 1.0 = true

DOM Level 2.0 Test:
   Core 2.0 = false
   HTML 2.0 = false

DOM Level 3.0 Test:
   Core 3.0 = false
   HTML 3.0 = false

When I use this script to test Mozilla Firefox 2.0, the result shows that DOM Core Level 1 and 2, and DOM HTML Level 2 are supported. But DOM HTML Level 1 is not supported.

DOM Level 0 Test:
   document.bgColor = #ffffff

DOM Level 1.0 Test:
   Core 1.0 = false
   HTML 1.0 = true

DOM Level 2.0 Test:
   Core 2.0 = true
   HTML 2.0 = true

DOM Level 3.0 Test:
   Core 3.0 = false
   HTML 3.0 = false

Table of Contents

 About This Book

 Introduction to JavaScript

 ECMAScript Language Specification and JavaScript Dialects

 Data Types, Variables and Expressions

 Flow Control Statements

 Creating, Accessing, and Manipulating Arrays

 Defining and Calling Functions

 Web Browser Supporting JavaScript

 Server-Side and Client-Side Web Scripting

 Introduction to Objects

 Defining Your Own Object Types

 Inheritance of Properties and Methods through the Prototype Object Chain

 'jrunscript' - JavaScript Shell Command from JDK

 Using Functions as "Function" Objects

 Introduction to Built-in Object Types

W3C's Document Object Model (DOM) Specifications

 Overview of DOM Specifications

 DOM Level 0 - Example

 DOM Level 1 - Example

 DOM Level 2 - Example

 DOM Level 3 - Example

DOM Level Test - document.implementation.hasFeature

 Inheritance vs. Flattened Views of the API

 A Web Document as A Tree of Different Interfaces

 A Web Document as A Tree of Nodes

 Dump Document in a New Window - JavaScript Source

 Dump Document in a New Window - Firefox 2.0 Result

 Dump Document in a New Window - IE 6.0 Result

 References

 PDF Printing Version