【问题标题】:non standard tags in HTML, in Javascript and in Javascript embedded in HTMLHTML、Javascript 和嵌入在 HTML 中的 Javascript 中的非标准标签
【发布时间】:2014-05-15 05:57:31
【问题描述】:

我的 Web 服务器和外部世界之间运行了一个进程,它对 Web 服务器提供的流量进行了一些更改。这是第 3 方流程。除了这个过程完成的其他事情之外,它还向 Web 服务器提供的页面添加了一些标签行。根据第 3 方,这些标签不是标准的 HTML 标签,因此会被浏览器忽略。

假设原来的行是

<script type="text/javascript"> 

    var a = true;
    function whatever() 
    {
        if(a)
           return true;
    }
</script>

那么经过过滤器后,线条可能会变成

<script type="text/javascript"> 

<XYZ MY TAG>
    var a = true;
</XYZ>
    function whatever() 
    {
        if(a)
           return true;
    }
</script>

现在如果浏览器中的浏览器/javascript引擎无法识别XYZ标签,标准是否说明了它会做什么?根据提供此过程的第 3 方,转换前后的行为将相同。

我正在寻找标准文档中的一些参考资料,这些参考资料表明这是正确的

  1. 纯 HTML
  2. JS 文件中的 Javascript
  3. 在 HTML 文件中嵌入了 Javascript。

有人可以帮忙吗?我已经用 IE & Chromium 做了一些基本的测试,看起来还可以。

【问题讨论】:

    标签: javascript html standards


    【解决方案1】:

    纯 HTML

    它不会被忽略。它将作为未知元素添加到 DOM。 (spec)。

    JavaScript

    JavaScript 不是 HTML。它会像 JavaScript 一样被解析。由于无效,所以会抛出异常。

    HTML 脚本标签

    因为它在&lt;script&gt; 标记之后、&lt;/script&gt; 标记之前并且是不是&lt;/script&gt; 的“标记”:HTML 解析器不会将其视为标记并将其传递给 JavaScript引擎。 (spec)

    由于不是合法的JS,所以JS引擎会抛出异常。

    【讨论】:

    • 在 HTML 中对未知元素会发生什么 - 它会影响页面的呈现吗?
    • 它被添加到 DOM 中。从那里它可以影响页面的呈现。
    • 它会以何种方式影响页面的呈现——即浏览器无法识别它
    • 我尝试了嵌入式 javascript - 它不会引发异常,但 javascript 引擎会忽略标签之间的任何内容。
    • 当我运行 the code you have in the question 时会抛出这个异常:SyntaxError: syntax error &lt;XYZ MY TAG&gt;
    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 2014-04-06
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 2022-01-13
    • 1970-01-01
    相关资源
    最近更新 更多