【发布时间】:2012-03-15 17:10:58
【问题描述】:
加载主干模板的常见模式如下:
<script type='text/template' id='foo'>
my template
</script>
----
var whatever = $('#foo').html();
我想将脚本包含在一个外部文件中,如下所示:
<script type='text/template' id='foo' src='myTemplate.tpl'></script>
但是foo 的html() 现在是空的。
我看到浏览器拉下模板文件,但我不确定它是否在页面 dom 中。有没有一种简单的方法可以在 javascript 中引用脚本的内容,还是浏览器直接忽略它并抛出结果?
【问题讨论】:
-
你试过在 document.ready 上做吗?
-
是的,在 document.ready 之后一切都运行良好
-
从优化的角度来看,如果模板是内联的,或者被声明为 javascript 变量,您的页面将加载得更快。加载页面上的每个外部资源都会产生 HTTP 开销。您至少应该在它们上使用
defer或async,以便浏览器知道它可以将它们与其他所有内容一起加载并且不必阻止 -
你试过没有 jQuery 吗?我想
document.getElementById("foo").textContent -
您没有遇到无提示的安全错误吗?跨域(或本地主机)请求不允许您获取内容,它们可能会返回一个空字符串。
标签: javascript templates backbone.js underscore.js