我有一个像下面这样的函数(在下面),它在HTML页面中插入一段HTML代码:
function someEventHandler(htmlContent)
{
  document.getElementById('some-element-id').innerHTML = htmlContent;
}
这适用于包含img标记的HTML代码.
<script>但是,当HTML代码包含块时,它们不会呈现.此外,脚本块包含由HTML注释包围的JavaScript.例如:
<script type="text/javascript">
<!--
    function someFunctionThatRendersStaticImageOrFlash()...
-->
</script>
包含HTML注释的这些脚本块在插入后不会呈现.我可以控制插入的代码,并且在没有HTML注释的情况下测试它,并且它们成功呈现.
据我所知,像这样的HTML评论在早期版本的Netscape中使用,以防止浏览器与javascript的不兼容问题.
是否有任何其他原因(或任何正当理由)在JavaScript块中包含HTML样式注释?
编辑 
我输入错误.结束评论是://-->.
Mar*_*c B 16
实际上,只有<!--有效的JavaScript.要在javascript中结束html注释,您实际上需要使用//-->.
这些天不再需要在Javascript中使用HTML注释了.浏览器如此陈旧以至于无法理解<script>标签,因此不太可能在"现代"网站上渲染任何内容,而且您不应该容纳那些完全在石器时代浏览器上的用户.
不过,如果你打算到包括XML文档中的HTML,和/或正在写X-HTML,那么你就必须使用XML <![CDATA[和]]>罩,各种运营商的Javascript( ,&,<和>特别)会导致没有机箱的XML解析错误.
这是浏览器和JavaScript引擎始终实现的非标准功能.如今,它无法从Web平台中删除,因为这会破坏向后兼容性.它在JavaScript/Web ECMAScript规范中有详细说明:
<!--必须被视为a的开头SingleLineComment- 相当于//.Run Code Online (Sandbox Code Playgroud)var x = true; <!-- x = false; // note: no syntax error x; // true
-->在行的开头,可选地以空格或MultiLineComments 开头 ,必须被视为SingleLineComment- 等效于//.Run Code Online (Sandbox Code Playgroud)var x = true; --> x = false; // note: no syntax error x; // true var x = 1; /* multiline comment! x = 2; */ --> x = 3; x; // 1
| 归档时间: | 
 | 
| 查看次数: | 7471 次 | 
| 最近记录: |