注释不在浏览器源代码中显示

怎么使注释不在浏览器源代码中显示图片描述

阅读 9.8k
6 个回答

可以在服务器端实现, mod_pagespeed是一个Apache module,去空白去注释,还有那些合并css等等很多功能
http://www.modpagespeed.com/
图片描述

原始状态:

<html>
<body>
<!-- Display the site logo here -->
<img src="logo.png">
<!-- Now show the page contents -->
<div>Some content here</div>
<!-- Apply IE-specific CSS -->
<!-- [if IE ]>
<link href="iecss.css" rel="stylesheet" type="text/css">
<![endif]-->
<!-- google_ad_section_end  -- retained due to RetainComment directive -->
</body>
</html>

输出之后:

<html>
<body>
<img src="logo.png">
<div>Some content here</div>
<!-- [if IE ]>
<link href="iecss.css" rel="stylesheet" type="text/css">
<![endif]-->
<!-- google_ad_section_end  -- retained due to RetainComment directive -->
</body>
</html>

删除了不就不显示了,哈哈

同楼上,浏览器的“查看源代码”会默认吧所有代码显示出来,只有删除这个方案 —— 问题是怎么删比较好?

如果觉得手动删比较麻烦,可以在上线前把代码统一用HTML压缩工具压缩一遍,同时就去掉注释了。

注意,这么做的话html代码本身的缩进、不必要的空格也会被删,所以请复制一份html来压缩。

另外,有精力的话也可以自己用脚本语言写一个批量删除html注释的小工具。

可以联系浏览器厂商,让他们加一个隐藏源代码注释的功能

只能服务器端不输出,没有什么办法

注释也属于节点, 你可以遍历节点找出所有node_type == document.COMMENT_NODE 然后remove().


// 临时写的, 遍历然后移除注释 
;(function(){
  var result = [], comment, nodelists;
  walker= document.createTreeWalker(document, NodeFilter.SHOW_COMMENT, null, null);
  while(comment = walker.nextNode()) {result.push(comment)}; //遍历迭代器
  result.map(function(item) {item.remove()})
}());
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题