Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

HTMLDocument is null in bootstrap.js

31 views
Skip to first unread message

Marcello Stanisci

unread,
Jun 5, 2015, 7:58:54 AM6/5/15
to dev-w...@lists.mozilla.org
Hello,

The problem is how to check whether a document is an instance of HTMLDocument in
the code of a bootstrapped extension.

I'm trying to follow the example shown in [1] (under the paragraph "The easy way, load events"),
doing what is suggested in the example in my bootstrap.js.

The Browser Console shows something like "HTMLDocument undefined (or null)"; how to refer to
'HTMLDocument' from within bootstrap.js?

unfortunately, it seems quite hard to find sutiable information on MDN

Thank you guys
Marcello


[1] https://developer.mozilla.org/en-US/Add-ons/Overlay_Extensions/XUL_School/Intercepting_Page_Loads

--
Public PGP key at: http://stanisci.web.cs.unibo.it/mstan

Boris Zbarsky

unread,
Jun 5, 2015, 8:38:46 AM6/5/15
to dev-w...@lists.mozilla.org
On 6/5/15 7:58 AM, Marcello Stanisci wrote:
> The problem is how to check whether a document is an instance of HTMLDocument in
> the code of a bootstrapped extension.

If you're OK with not including synthetic image documents, the simplest
thing might be:

Object.prototype.toString.call(doc) == "[object HTMLDocument]"

If you want to include them, you could do that explicitly by also
testing for "[object ImageDocument]", of course.

Alternately, if you only care about documents in a window, then you
could do:

doc.defaultView && doc instanceof doc.defaultView.HTMLDocument

(or skip the doc.defaultView test if you know it has one).

It's also possible that doing this:

doc instanceof Components.interfaces.nsIDOMHTMLDocument

would work, thought I personally would prefer it if you used one of the
other things so wecan work on killing off nsIDOMHTMLDocument. ;)

-Boris
0 new messages