我想知道在加载网页时是否有任何方法可以加载其他文件。我正在尝试将JavaScript模板引擎集成到我的网站中,并希望将我的模板保存在外部文件中,而不必异步加载这些模板,而是在页面的某处指定所需的模板并使用它们的内容(这将是已经在JavaScript中加载了网页) 有没有办法实现这样的功能?
答案 0 :(得分:1)
您可以查看JSONP
,这样您就可以将它们包含在脚本中,听起来更像您想要的内容:
// HTML
<script>
var files = [];
var cache = function(data) {
files.push(data);
});
</script>
<script src="external.js"></script>
// External File
cache("<content>")
答案 1 :(得分:1)
难以在文档中同步加载其他HTML文件。如果不是不可能。您必须加载返回HTML字符串的javascript文件,或者可能使用框架。
但是许多模板语言允许您直接在HTML代码中定义模板,f.ex Handlebars:
<script id="entry-template" type="text/x-handlebars-template">
template content
</script>
您还可以使用Node或其他后端语言从目录中提取模板,并创建包含所有模板字符串的全局Template对象。
当我使用前端模板开发时,我在开发时使用单独的模板文件和Ajax,然后我们有一个node.js脚本,它提取所有模板并将它们放在一个全局对象中,而不是放在主HTML请求中,以便更快地访问
答案 2 :(得分:0)
是的,您可以使用jquery-ajax
在一行或两行中完成使用.load http://api.jquery.com/load/
加载完整文件$('#result').load('ajax/test.html');
或.html http://api.jquery.com/html/
答案 3 :(得分:0)
.html()
此方法在XML文档中不可用。
在HTML文档中,.html()可用于获取任何元素的内容。如果选择器表达式与多个元素匹配,则只返回第一个匹配的HTML内容。请考虑以下代码:
$('div.demo-container').html();
为了检索以下内容,它必须是文档中第一个带有class =“demo-container”的内容:
<div class="demo-container">
<div class="demo-box">Demonstration Box</div>
</div>
结果如下:
<div class="demo-box">Demonstration Box</div>
此方法使用浏览器的innerHTML属性。某些浏览器可能不会返回完全复制原始文档中HTML源的HTML。例如,如果属性值仅包含字母数字字符,则Internet Explorer有时会忽略引号。