Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript块中的HTML注释?_Javascript_Html - Fatal编程技术网

javascript块中的HTML注释?

javascript块中的HTML注释?,javascript,html,Javascript,Html,我有一个类似(如下)的函数,它在HTML页面中插入一块HTML代码: function someEventHandler(htmlContent) { document.getElementById('some-element-id').innerHTML = htmlContent; } 这对于包含img标记的HTML代码非常有效 但是,当HTML代码包含块时,它们不会呈现。此外,脚本块包含由HTML注释包围的JavaScript。例如: <script type="text/ja

我有一个类似(如下)的函数,它在HTML页面中插入一块HTML代码:

function someEventHandler(htmlContent)
{
  document.getElementById('some-element-id').innerHTML = htmlContent;
}
这对于包含
img
标记的HTML代码非常有效

但是,当HTML代码包含
块时,它们不会呈现。此外,脚本块包含由HTML注释包围的JavaScript。例如:

<script type="text/javascript">
<!--
    function someFunctionThatRendersStaticImageOrFlash()...
-->
</script>

这些包含HTML注释的脚本块在插入后不会呈现。我可以控制插入的代码,并且在没有HTML注释的情况下对其进行了测试,并且成功地呈现了它们

据我所知,早期版本的Netscape中使用了类似的HTML注释,以防止浏览器与javascript不兼容的问题

在javascript块中包含HTML样式的注释还有其他原因(或任何好的原因)吗

编辑
我打字打错了。结束语是:
/-->
不,没有理由包括它们。我经常省略这些注释,并且对现代浏览器没有任何问题。

脚本块中的HTML注释已经多年不需要了。省略它们不会引起任何问题

参考文献:

实际上,只有

现在已经不再需要在Javascript中使用HTML注释了。太旧以至于不理解
标记的浏览器不太可能在“现代”网站上呈现很多内容,而且您不必满足石器时代浏览器用户的需求

但是,如果您打算在xml文档中包含HTML和/或编写x-HTML,则必须使用xml
]>
附件作为各种Javascript操作符(
&
,尤其是
)在没有附件的情况下,将导致XML解析错误。

通过
innerHTML
设置的内部字符串从未运行过(主要是因为它从未在IE中运行过,然后站点依赖于此,所以当其他浏览器反向工程
innerHTML
实现时,它们也必须这样做)。那里的HTML注释是一条红鲱鱼


如果需要运行
,则需要使用其他一些插入节点的方法(例如
createContextalFragment
)。

这是以前浏览器和JavaScript引擎一直实现的非标准功能。如今,它无法从Web平台上删除,因为这会破坏向后兼容性。它是:


这难道不是穷人的CDATA包装器吗?我从来没有使用过它。这就是实际使用的内容(jQuery):
$(“#some element id').html(htmlContent)
@MikeMoore-jQuery检测传递给
html()
的字符串何时包含脚本块,如果是,则不使用innerHTML。它将显式地取出脚本块并为您
eval()
它们。有关详细信息,请参阅。谢谢Marc!我刚才打错了结束语,实际上是你打它的方式-
/-->
。我相信这段代码起源于一个通过谷歌双击服务的自动化工具。希望将来我能编辑自动代码。实际上,
-->
在行首时,可以选择前面加空格或
多行注释,将其视为
单行注释
(相当于
/
)。看,链接好像断了,我相信规范是正确的
var x = true;
<!-- x = false; // note: no syntax error
x; // true
var x = true;
--> x = false; // note: no syntax error
x; // true

var x = 1;
/*
multiline comment!
x = 2;
*/ --> x = 3;
x; // 1