带有注释JavaScript代码的HTML

带有注释JavaScript代码的HTML,javascript,html,comments,Javascript,Html,Comments,我试图解析HTML代码,以便提取其中的所有链接。为了避免不可用的链接,我删除了以开头的注释代码。问题来了:在HTML代码中,我可能会找到一些JavaScript代码,例如: <html> <HEAD> <SCRIPT LANGUAGE="JavaScript"> <!-- Begin if (document.images) { var pic2 = new Image(); // for the inactive image pic2.src

我试图解析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代码被注释了,但仍然有效

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

当我面对未使用的注释代码时,以及当注释代码起作用时,我应该做些什么来识别

按照编写一个真正的HTML解析器,然后从生成的DOM中删除任何注释节点


作为一个肮脏(但可能很快)的解决方案,您可以忽略标记为包含CDATA的元素中的注释

奇怪的是,js代码被注释了,但仍然有效

这没什么奇怪的。注释
只能在HTML中使用,不能在JavaScript中使用。由于您已将这些注释放在
标记中,因此上述代码仍然有效。
唯一不同的是,如果用户在浏览器上禁用了JavaScript,他将看不到打印在浏览器上的代码(因为HTML将在没有JavaScript的情况下解析这些注释)。

您需要注释掉整个块。e、 g

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


这并没有回答问题(这是关于识别哪些
是注释,哪些不是注释)。你也错了,支持JS但被禁用的浏览器(以及自1998年以来不支持JS的浏览器)不会在脚本中呈现文本。只有在将脚本添加到HTML之前的浏览器才会使用.Thanx作为您的答案。问题是如何识别注释序列和非注释序列。这不是问如何注释脚本。对不起,完全错过了这一部分。好的。现在我明白了。谢谢你的回答。我会寻找最好的策略。