Вы можете это сделать. Идея заключается в том, чтобы включить HTML-файл в файл HTML. Я могу сказать по крайней мере 3 способа, которым это может случиться, но лично я полностью подтвердил только третий.
Во-первых есть JQuery next sample is taken from this thread
a.html:
<html>
<head>
<script src="jquery.js"></script>
<script>
$(function(){
$("#includedContent").load("b.html");
});
</script>
</head>
<body>
<div id="includedContent"></div>
</body>
</html>
b.html:
<p> This is my include file </p>
Другое решение, я нашел здесь и не требуют jQuery, но все еще не тестируются: there is a small function
Мое решение является чистым HTML5 и, вероятно, не поддерживается в старых браузерах, но я не забочусь о них.
Добавить в голове вашего HTML, ссылку на ваш HTML с шаблоном
<link rel="import" href="html/templates/Hello.html">
Добавьте свой код шаблона в Hello.html. Чем использовать эту функцию полезности:
loadTemplate: function(templateName)
{
var link = document.querySelector('link[rel="import"][href="html/templates/' + templateName + '.html"]');
var content = link.import;
var script = content.querySelector('script').innerHTML || content.querySelector('script').innerText;
return script;
}
Наконец, вызовите функцию, где вам это нужно:
var tpl = mobileUtils.loadTemplate('hello');
this.templates.compiledTpl = Template7.compile(tpl);
Теперь вы скомпилированный шаблон готов к использованию.
======= UPDATE
После создания своего проекта для КСН я узнал, что импорт связь не поддерживается всеми браузерами, пока я не смог заставить его работать на Iphone. Поэтому я пробовал метод номер 2. Он работает, но, как вы могли видеть, он получает запросы на получение, что мне не понравилось. Нагрузка jquery, похоже, имеет тот же недостаток.
Так что я вышел с номером 4. Способ
<iframe id="iFrameId" src="html/templates/template1.html" style="display:none"></iframe>
и теперь моя функция LoadTemplate является
loadTemplate: function(iframeId, id)
{
var iFrame = document.getElementById(iframeId);
if (!iFrame || !iFrame.contentDocument) {
console.log('missing iframe or iframe can not be retrieved ' + iframeId);
return "";
}
var el = iFrame.contentDocument.getElementById(id);
if (!el) {
console.log('iframe element can not be located ' + id);
return "";
}
return el.innerText || el.innerHTML;
}
Означает ли это, что это невозможно или трудно иметь те шаблон кода, в формате HTML в другой файл .html? – SonicC
Считаете ли вы, что для этого используется кодирование на стороне сервера? С, например, PHP, можно поместить HTML-код в отдельные PHP-файлы. Мы используем этот подход, который вы можете иметь как (1) шаблоны в формате HTML, так и (2) отдельные файлы для ваших шаблонов ... –