客户端HTML模板使用<script type="text/template">,<script type="text/tcl">或<template>?

3

我知道有一个类似的问题 - 不过那是三年前的事了,有关text/tcl的评论似乎没有引起讨论。


你知道在实现客户端模板时应该使用哪个版本:

<script type="text/template"><script type="text/tcl">还是<template>

  • 我听说一些安全软件可能会过滤掉某些不符合常规标准的<script>标签,因此出于安全考虑,text/template可能会被一些代理服务器或杀毒软件过滤掉?
  • 使用text/tcl有什么缺点吗?
  • 在创建元素时,对于旧版浏览器(IE),使用<template>并通过document.createElement("template")创建元素是否安全?

非常感谢您的帮助。


1
可能是[<script type = "text/template"> ... </script>]的重复问题解释。 (https://dev59.com/3W445IYBdhLWcg3wWI2L) - Dai
在早期的互联网时代,TCL作为一种Web脚本语言与JavaScript和VBScript竞争。W3C可能将其用作示例,因为JavaScript不在W3C的权限范围内(ECMA发布ECMAScript / JavaScript标准和规范,而不是W3C)。 - Dai
不是重复的。OP明确链接了问题并说明了它与其他问题的不同之处。 - Madara's Ghost
@SecondRikudo:我认为原帖在宽限期内被编辑以回应评论,但我可能错了。 - Qantas 94 Heavy
@Qantas94Heavy 可以是任何一种方式,但现在它不是重复的事实并没有改变 :) - Madara's Ghost
我感谢您将此问题声明为非重复问题 - 但是,如果您也能提供实际的答案,那就太好了。 - Simon Ferndriger
1个回答

3
  1. 我从未听说过安全软件攻击特定的 <script> 类型;我的所有经验都是与那些破坏任何他们看到的 <script> 的“安全”软件有关。一些研究没有进一步发现,但他们可能在不好的IE6-COM利用日子里针对VBScript之类的东西。

  2. text/tcl 意味着 Tcl语言, 这是W3C选择的一种旧的Web脚本语言,而不是JavaScript。(这背后有一个漫长的故事,解释了为什么DOM如此糟糕。)

    确实有人在实现它方面做了工作,但我找不到任何一个浏览器实现了这个功能。有一个Tcl浏览器插件,但它的演示使用application/x-tcl,所以即使是那个运行着十年前的浏览器和不可取的插件选择的家伙,也可能什么都不会发生。

    我知道的唯一效果就是旧版Internet Explorer会在<script>上查找未知type值的处理程序。(这在HTML5的新<script type="module">中出现过,但我找不到正确的邮件列表/GitHub问题/聊天记录/WHATWG发现它的地方。)他们决定可以忽略它(得到了Edge团队的支持)。

  3. 它相对安全,但要注意,在被修复的<template>内部的标记仍将执行;src属性将加载(即使它们是空的),<script>将运行,<style>将样式化,等等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接