我有一个进程在我的Web服务器和外部世界之间运行,它对Web服务器交付的流量进行了一些更改。这是一个第三方过程。除了这个过程完成的其他工作之外,它还向web服务器交付的页面添加了一些标记行。根据第三方的说法,这些标签不是标准的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标签,标准是否说明它将做什么?根据提供此过程的第三方,在转换之前和之后的行为将是相同的。
我正在寻找一些参考在标准文档中说这是真的
- 纯HTML
- JS文件中的Javascript
- 在HTML文件中嵌入Javascript。
有人能帮忙吗?我用IE做了一些基本的测试。
普通HTML
它不会被忽略。它将作为一个未知元素添加到DOM中。(规范).
JavaScriptJavaScript不是HTML。它会像JavaScript一样被解析。由于无效,它将抛出异常。
HTML脚本标签
由于它在<script>
标签之后,</script>
标签之前,并且是一个不是</script>
的"标签":HTML解析器不将其视为标签并将其传递给JavaScript引擎。(规范)
因为它不是有效的JS, JS引擎会抛出一个异常。