can one include `templates` in a html file similar to css?

working with html templates . code-wise, it's difficult to keep the right set of templates with each html file.

is it possible to have a file of template(s), much like a file of css , that one includes in the head section of the html file?

for example, to supplement the style section in head , one can link to a stylesheet, eg,

<link rel="stylesheet" type="text/css" href="mystyle.css" >

my app uses several collections of templates . can they be handled similar to stylesheets, ie, linked to in a separate file, or does each template definition need to be directly part of the original html file?


Imagine we want to import a bunch of <template> s in a separate file called templates.html.

In the (main) homepage index.html, we can import the file via HTML Imports:

<link rel="import" href="templates.html" id="templates">

In the imported file templates.html, add one or as many templates as you need:

<template id="t1">
     <div>content for template 1</div>
</template>

<template id="t2">
     content for template 2
</template>

The imported document is available from the import property of the <link> element. You can use querySelector on it.

<script>
  //get the imported document in doc:
  var link = document.querySelector( 'link#templates' )
  var doc = link.import

  //fetch template2 1 and 2:
  var template1 = doc.querySelector( '#t1' )
  var template2 = doc.querySelector( '#t2' )
</script>

Note: you can place the above script in the main document, or in the imported one because the <script> s inside an imported file are executed as soon as the are parsed (at download time).


http://www.html5rocks.com/en/tutorials/webcomponents/imports/

You need HTML 5 though

<head>
  <link rel="import" href="/path/to/imports/stuff.html">
</head>

Unfortunately,

<head>
  <link rel="import" href="/path/to/imports/stuff.html">
</head>

does not work.

The entire stuff.html is stuck in there as html as part of head , and for all practicable purposes inaccessible.

In other words, a template defined in stuff.html cannot be found using document.querySelector()`, and is therefore unavailable to the script.

fwiw, I don't really understand any advantages of import the way it works now - for it to be any good it needs to strip off (rather than adding) all the outer html before it appends the contents to head - not its current action.

链接地址: http://www.djcxy.com/p/87972.html

上一篇: 我怎样才能配置Mac终端有颜色ls输出?

下一篇: 可以在类似于CSS的html文件中包含`templates`吗?