首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><script type = "text/template"> ... </script>说明

<script type = "text/template"> ... </script>说明
EN

Stack Overflow用户
提问于 2011-02-06 17:46:07
回答 7查看 221.9K关注 0票数 474

我只是偶然发现了一些我从未见过的东西。在Backbone.js的示例TODO应用程序(Backbone TODO Example)的源代码中,他们将他们的模板放在一个<script type = "text/template"></script>中,其中包含的代码看起来像PHP之外的东西,但带有JavaScript标记。

有人能给我解释一下吗?这是合法的吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-02-06 17:53:23

这些脚本标记是在客户端实现模板功能的常用方法(就像在PHP中一样)。

通过将类型设置为"text/template",它不是浏览器可以理解的脚本,因此浏览器将简单地忽略它。这允许您在其中放置任何内容,稍后可以提取这些内容并由模板库使用来生成HTML代码片段。

Backbone并不强制您使用任何特定的模板库-有相当多的模板库:MustacheHamlEcoGoogle Closure template等等(您链接到的示例中使用的模板库是underscore.js)。它们将使用它们自己的语法在这些脚本标记中编写代码。

票数 424
EN

Stack Overflow用户

发布于 2012-05-14 12:52:02

这是合法的,而且非常方便!

试试这个:

代码语言:javascript
复制
<script id="hello" type="text/template">
  Hello world
</script>
<script>
  alert($('#hello').html());
</script>

有几个Javascript模板库使用这种技术。Handlebars.js就是一个很好的例子。

票数 120
EN

Stack Overflow用户

发布于 2014-03-17 13:33:26

通过设置text/javascript以外的脚本标签type,浏览器将不会执行脚本标签的内部代码。这就是所谓的微模板。这一概念被广泛应用于单页面应用程序(也称为SPA)。

代码语言:javascript
复制
<script type="text/template">I am a Micro template. 
  I am going to make your web page faster.</script>

对于微模板,脚本标签类型为text/template。Jquery的创建者John Resig http://ejohn.org/blog/javascript-micro-templating/很好地解释了这一点。

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4912586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档