Why is a self-closing iframe tag preventing further DOM elements to be displayed?

Because the iframe element isn’t a self-closing element. The versions of Firefox and Safari you’re using are treating the /> at the end as just > and assuming everything after it is contained within the iframe.

If we attempt to pass the code you’ve given through W3C’s validator we’ll see the following errors:

Error: Self-closing syntax (/>) used on a non-void HTML element. Ignoring the slash and treating as a start tag.

<iframe src="http://www.bing.com"/>

Error: End of file seen when expecting text or an end tag.

</html>

Error: Unclosed element iframe.

<iframe src="http://www.bing.com"/>

If you inspect your document with your browser’s Element Inspector, you’ll see what’s going on.

Chrome, which I’m using, converts the invalid <iframe ... /> to <iframe ...></iframe>:

Chrome Example

Leave a Comment