繁体   English   中英

带有注释JavaScript代码的HTML

[英]HTML with commented JavaScript code

我试图解析HTML代码以提取其中的所有链接。 为了避免不可用的链接,我删除了以<!--开头和-->结束的注释代码,这是问题所在:在HTML代码中,我可能会找到一些JavaScript代码,例如:

<html>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
if (document.images) {
  var pic2 = new Image(); // for the inactive image
  pic2.src = "pic2.jpg";
  var title2 = new Image();
  title2.src = "title2.jpg";
  }
...
-->

而奇怪的是,该js代码已注释但仍然有效。 因此,如果删除该代码,结果将不会达到预期。 为了确定何时面对未使用的注释代码以及该注释代码何时起作用,我该怎么办?

奇怪的是,该js代码已注释但仍然有效

这些不是评论。 在注释语法之后的脚本(和样式)元素中仅允许使用语法,因此在脚本和样式之前的浏览器不会将代码呈现为文本。

为了确定何时面对未使用的注释代码以及该注释代码何时起作用,我该怎么办?

按照解析规范编写一个真正的HTML解析器,然后从生成的DOM中删除所有注释节点。


作为一种肮脏的(但可能是快速的)解决方案,您可以忽略HTML 4.01 DTD中标记为包含CDATA的元素内的注释。

奇怪的是,该js代码已注释但仍然有效

没有什么奇怪的。 注释<!-- -->仅适用于HTML,不适用于JavaScript。 由于您已将这些注释放在<script>标记内,因此上面的代码仍然可以使用。 唯一的区别是,如果用户在浏览器上禁用了JavaScript,则他将看不到浏览器上打印的代码(因为HTML将在没有JavaScript的情况下解析这些注释)。

您需要注释掉整个<script>块。 例如

 <!-- <script>
       ...some javascript code... 
</script> -->

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM