Importing modules inside HTML imports

Ian Hickson ian at
Fri Aug 15 15:06:45 PDT 2014

Suppose you have an HTML import foo.html that declares two modules:

   <script type=module id=a> ... </script>
   <script type=module id=b> ... </script>

How should they refer to each other? For example, if module id=b wants to 
import module id=a? I suppose the logical way is like this:

   import "#a";

Now, in the main page, you reference the HTML import:

   <link rel=import href="foo.html">

Now how would you refer to the modules? We can't have #b refer to it, 
since the scope of IDs is per-document, and the import has a separate 
document. The logical way to do it would be:

   import "foo.html#a";

...but that means that "#a" and "foo.html#a" should resolve to the same 
canonical string in the "normalize" hook. Presumably then, that's the full 
absolute URL? And we look up the document in the import list? But what if 
the import hasn't been instantiated yet? Should "normalize" just wait 
until it has been? (Otherwise, the module registry won't have the module 
and so "locate" will be called and "locate" won't have any idea what to do 
with that URL.)

None of this is very compelling. Is there some expected way to do this 
that I haven't thought of?

(Similar questions apply to referencing other things in imports, e.g. 
style sheets, images, etc.)

Ian Hickson               U+1047E                )\._.,--....,'``.    fL       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

More information about the es-discuss mailing list