2013年1月

首先看一段示例代码:
<div id="wrap">
<script type="text/javascript">
        document.write('<\!--');
</script>
<iframe src="xxx.html" frameborder="0" scrolling="no" width="320" height="384"></iframe>
<!-- DO NOT DELETE -->
</div>
<script type="text/javascript">
//xxx scroll、resize等条件执行下面滴
Ajax.get('xxx.php', function(ret){$('#wrap').html(ret)});
</script>

使用场景是这样的:就是页面在往下拖到一定距离滴时候会动态出来一块内容,但是为了保证不支持javascript的浏览器也能正常看到这块内容,需要做兼容处理。
可能有同学会说为啥不直接<noscript>搞定?是因为我们发现在中国这个奇葩环境下,我们的部分用户不是不支持js,而是jscript.dll等文件被破坏导致出现js支持但是解析不了的情况,所以出现了上面这个奇怪滴解决方案。
主要思路就是用js write出来html注释,使在js正常的情况下html代码不解析,然后使用正常的html注释的方式来关闭js写出来的注释(注意这里的注释开始符会被当做js写出来的注释的注释主体)使后续的html代码能正常解析。
不过,这样滴代码毕竟不是良好的代码风格,如果在项目中有使用html压缩等需要单独给功能形注释取消压缩,就如IE条件注释一样。