使用 javascript for loop 删除 html 注释会产生错误

Removing html comments with javascript for loop produces error

本文关键字:错误 注释 html javascript for loop 删除 使用      更新时间:2023-09-26

嗨,我正在从 html 代码中删除注释(因此 innerHTML 计数在 IE 中有效)。我承认我不是最亮的灯泡:)我无权访问(知识)jquery或源代码本身来删除它们。我对正则表达式很糟糕,所以我还没有尝试过这个

我尝试了以下代码

<script>        
function clean(node)
        {
    for(var n = 0; n &lt; node.childNodes.length; n++)
      {
        var child = node.childNodes[n];
        if
        (
          child.nodeType === 8 ||
          (child.nodeType === 3 &amp;&amp; !/S/.test(child.nodeValue))
        )
        {
          node.removeChild(child);
          n--;
        }
        else if(child.nodeType === 1)
        {
          clean(child);
        }
      }
    }
</script>

但这在所有浏览器中都给了我错误:

SyntaxError: missing ) after for-loop control
for(var n = 0; n &lt; node.childNodes.length; n++)

任何想法都会很棒。页面上有一堆jquery脚本,但我无法控制这些脚本,并且它们没有任何错误发生,所以我认为这无关紧要。

提前谢谢你

通过 Javascript 删除注释后,它们仍将在 View Source 中可见,因为它显示了 Javascript 运行之前的源代码。

如果您不希望注释对用户可见,请不要使用 HTML 注释。 在服务器端块中使用服务器端语言的注释。 喜欢:

<%
   //comment: printing variable x
   out.print(x);
%>

我会首先将"<"替换为"<",您的与号也是如此。