Javascript和PHP一样有打开和关闭标签吗?

Does Javascript Have Open and Close Tags Equivalent to PHP?

本文关键字:关闭标签 PHP Javascript 一样      更新时间:2023-09-26

我在一个WordPress管理页面上遇到了这样的代码:

<script type="text/html" id="tmpl-uploader-inline">
    <# if ( data.message ) { #>
        <h3 class="upload-message">{{ data.message }}</h3>
    <# } #>
</script>

标签<#>#>是javascript/html语法的一部分还是这里发生了其他事情?我试着用谷歌搜索,但谷歌在搜索某些类型的符号时似乎有问题。它们永远不会出现在搜索结果中。

更新:根据目前的答案,如果标记中的代码是由服务器端的模板引擎处理的,那么为什么在浏览器中显示为页面源代码呢?它不应该只显示模板处理的结果吗?

通用技术

这是一个Javascript模板Wordpress从3.4.1版本开始使用Backbone.js。你可以在Backbone.js中建模视图,当底层Javascript对象发生变化时,视图会自动更新,请参阅相应的Backbone.js文档。

Backbone.js也是基于underscore.js,它基本上是Javascript实用函数的集合。其中一个函数是_.template,它接受一个模板字符串(例如您发布的HTML标签的内容)和一个Javascript数据对象,并用数据对象中的值替换变量,并计算简单表达式。

取自underscore.js手册中的示例:

var compiled = _.template("hello: <%= name %>");
compiled({name: 'moe'});
=> "hello: moe"
<标题> Wordpress适应h1> 常的_.template语法应该是<%= name %>,但无论出于何种原因,Wordpress开发人员认为所谓的erb风格不合适并更改了它。您可以在wp-includes/js/wp-util.js 3.9版本中看到这一点。在第20行左右,其中options散列被一些正则表达式覆盖。基本上,语法被更改为使用{{ name }}输出变量的值,并且正在计算<# if ... #>。(第一个看起来有点像mustache.js使用的语法。) <标题>进一步阅读

这是一个教程(第1部分,第2部分),涵盖了在Wordpress后端使用Backbone.js。

在这里有人收集了很多关于这个主题的资源在Wordpress(和一般)。

它确实有打开和关闭标记。

<script></script>

其他标签

<# #>

是模板标签。它们之间的区别在于<script>标记将在客户端的浏览器上运行,而其他标记(<#)在将页面发送到浏览器之前在服务器上运行。

这些标签不是JavaScript或HTML的一部分,而是模板引擎使用的标签。