我可以在页面加载期间将文本加载到html中

时间:2012-08-16 16:11:04

标签: javascript html ajax web template-engine

我想知道在加载网页时是否有任何方法可以加载其他文件。我正在尝试将JavaScript模板引擎集成到我的网站中,并希望将我的模板保存在外部文件中,而不必异步加载这些模板,而是在页面的某处指定所需的模板并使用它们的内容(这将是已经在JavaScript中加载了网页) 有没有办法实现这样的功能?

4 个答案:

答案 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有时会忽略引号。

More Help