JavaScript Feature Reference: innerHTML
Property Web Browser Support Test
1. Introduction
In this web page there are two web browser JavaScript feature support tests; 1.) a feature implementation test, and 2.) a feature capability test. First, the implementation test is run. The implementation test determines if the web browser recognizes the JavaScript innerHTML
property. The implementation test is a simple test for the presence of web browser support, and a definitive test for the absence of web browser support. If the web browser does not recognize the JavaScript innerHTML
property, the testing is stopped and the implementation test reports: Fail (no support): The web browser does not recognize the JavaScript
innerHTML
property. The web browser does not support the JavaScript innerHTML
property.
If the web browser recognizes the JavaScript innerHTML
property, the capability test is run. The capability test determines if the web browser's implementation of the JavaScript innerHTML
property includes support for at least one innerHTML
property capability. The capability test is a more definitive, albeit not an all inclusive, test for the presence of web browser support. If the web browser's implementation of the JavaScript innerHTML
property includes support for the tested capability, the capability test reports: Pass (at least partial/possibly full support): The web browser recognizes the JavaScript
If the web browser's implementation of the JavaScript innerHTML
property, and supports at least one innerHTML
property capability. The web browser at least partially/possibly fully supports the JavaScript innerHTML
property. Positive determination of full web browser support is beyond the scope of this test.innerHTML
property does not include support for the tested capability, the capability test reports: Pass/Fail (partial support): The web browser recognizes the JavaScript
innerHTML
property, but does not support at least one innerHTML
property capability. The web browser partially supports the JavaScript innerHTML
property.
The web browser support test source code is shown in Section 2.1. The web browser support test source code is run in Section 2.2, which shows the web browser support test result.
1.1. innerHTML
Property Web Browser Support
Pass (at least partial/possibly full support):
IE6+, ED12+, FF1.5+, SF3.1+, CH2+, OP7.50+.
1.2. Abbreviations
- IE = Internet Explorer.
- ED = Edge Legacy 12 - 18 (EdgeHTML based) and Edge 79+ (Chromium based).
- FF = Firefox.
- SF = Safari.
- CH = Chrome.
- OP = Opera.
2. innerHTML
Property Web Browser Support Test
2.1. Web Browser Support Test Source Code
<p id='testId'>Content required to avoid false negative. The JavaScript <code>innerHTML</code> property on an element node without a child node (i.e., on an empty element/an element without content, for example <code><div></div></code>) returns an empty string (i.e., <code>""</code>). Because the JavaScript <code>Boolean()</code> casting function evaluates an empty string to <code>false</code>, a conditional involving the JavaScript <code>innerHTML</code> property on an empty element evaluates to <code>false</code>, which could be mistakenly interpreted as the web browser not supporting the JavaScript <code>innerHTML</code> property.</p> <p id='testIdTwo'></p> <script> var element = document.getElementById("testId"); var elementTwo = document.getElementById("testIdTwo"); if (element.innerHTML){ elementTwo.innerHTML = "If the web browser supports the JavaScript <code>innerHTML</code> property set/write mode capability, this HTML code becomes the <code>elementTwo</code> child node on the DOM, which changes <code>elementTwo</code> from an element node without a child node to an element node with this HTML code as the child node, which changes the evaluation of <code>if (elementTwo.innerHTML)</code> from <code>false</code> to <code>true</code>."; if (elementTwo.innerHTML){ document.write("<p><b>Pass</b> (at least partial/possibly full support): The web browser recognizes the JavaScript <code>innerHTML</code> property, and supports at least one <code>innerHTML</code> property capability. The web browser at least partially/possibly fully supports the JavaScript <code>innerHTML</code> property. Positive determination of full web browser support is beyond the scope of this test.</p>"); } else { document.write("<p><b>Pass/Fail</b> (partial support): The web browser recognizes the JavaScript <code>innerHTML</code> property, but does not support at least one <code>innerHTML</code> property capability. The web browser partially supports the JavaScript <code>innerHTML</code> property.</p>"); } } else { document.write("<p><b>Fail</b> (no support): The web browser does not recognize the JavaScript <code>innerHTML</code> property. The web browser does not support the JavaScript <code>innerHTML</code> property.</p>"); } </script>
2.2. Web Browser Support Test Result
Content required to avoid false negative. The JavaScript innerHTML
property on an element node without a child node (i.e., on an empty element/an element without content, for example <div></div>
) returns an empty string (i.e., ""
). Because the JavaScript Boolean()
casting function evaluates an empty string to false
, a conditional involving the JavaScript innerHTML
property on an empty element evaluates to false
, which could be mistakenly interpreted as the web browser not supporting the JavaScript innerHTML
property.