变态的ie6将注释当代码解释

ie6宽松的安全环境对于开发人员是开心的,比如运行速度快(对于ie7/8/9)、支持部份文件操作等。但也有很多烦忧,比如对数组、对象的检测比较机械,这还不算什么,这两天让我遇到一个哭笑不得的问题,它竟然把双斜杠注释当代码解释。

也许你不信,那且听我说。前几天下载了一个js文件,ansi字符编写,我用dreamweaver打开,但这个dw8不好之处是它对所有打开的文件都以它的默认编码运作,我之前将它的默认编码设为utf-8,那么打开这个ansi编码格式的文件时所有中文注释全部乱码,在今天看来dw8这个不检测打开文件编码的习惯很不好,现在随便一个记事本都会检测来路的文件编码,并以该编码的环境运行,但dw8不知是没有这个功能还是我不懂其它设置,反正它就这么干了,更可恨的是我把那个打开js文件又修改了,然后保存,第二天又在记事本里小修改然后加注释保存,最后立即导入到html中预览,悲剧来临---ie6检测到js文件有错,提示“行3缺少标识符,字符串或数字”,我立即调出js左看右看,楞是没看出有什么错,我怕这是ie特有错,特地用firefox查看,一切运行正常,因为ie6的js报错很模糊,我又打开ie8查看个仔细,奇怪的是ie8也正常。没辙,我只好网上查,上面大部份都是这样解释这个错误:一般都是数组或对象中最后一个元素多出”,“。我又回去看500行代码中的数组与对象组,还是没发现不存在这种问题。

做js最怕就是这样,检测机制不完善,有时一点小错找半天找不出来。这时,我只能借助firefox的firebug设置断点和alert再次看运行有无异常,但还是正常。我又怕ie6下独有的错误而其它浏览器忽略得不留半点痕迹,所以对代码内的所有缺代码块括号{}或typeof写法或保留字或==与===这些细小问题一一补齐,再在ie6运行,但还是行3错误,这时真的没什么办法了,我打开notepad++查看,因为它能处在文件所在编码环境编写,注释也就一目了然。这时我发觉,注释比较多,因此把多余的注释去掉,包括开头的文件说明。

搞好后,我再运行ie6,打开错误提示,发觉提示由行3变成行11,错误类型由”缺少标识符,字符串或数字“变成,缺少”}“。奇怪了,没改代码,它的错误行向前推进了这么多,难道是注释影响了代码?!吸取教训,我把行11附近的所有注释去掉,发觉,它又变成20多行错误。我干脆把所有注释去掉,并把换行符删除重新换行,最后... ...它,它真的正常了!天啊,这都行!!!

后面我想,这只有一种解释,那就是我由dw8不断换编辑器,把文件编码搞乱了,最后代码内的注释都被ie6当成代码执行了。神一般的ie6,你赢了,而且赢得彻底,让我花了整整一个下午的时间。ps一句其它浏览器没出现问题,包括ie8。

原文地址:http://sumsung753.blog.163.com/blog/static/146364501201203092517784/

其他解决方案:http://hi.baidu.com/yuanry/item/b5dfc37ce9a545295d178960

大概原因我在ietester测试的,估计真实的ie6没有事情

懒得说IE6了,写个js插件不能写注释,原因如下的更多相关文章

  1. jQuery Validate 表单验证插件----通过name属性来关联字段来验证,改变默认的提示信息,将校验规则写到 js 代码中

    一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二. 添加一个另外一个插件jquery.validate.messages_cn.js. ...

  2. 如何写一个Js上传图片插件。

    项目里面需要一个上传图片的插件,找了半天没有找到满意的,算了 不找了,自己写一个吧,顺便复习一下js方面的知识.完成之后效果还不错,当然还要继续优化,源码在最后. 介绍一种常见的js插件的写法 ; ( ...

  3. 解决IE6下PNG透明的JS插件:DD_belatedPNG.js

    DD_belatedPNG是一款解决IE6下PNG透明的JS插件,支持background-position和background-repeat属性,支持伪类.使用方法: <!--[if lte ...

  4. 适用于各浏览器支持图片预览,无刷新异步上传js插件

    文件上传无疑是web应用中一个非常常用的功能,不管是PHP.jsp还是aspx.mvc等都会需要文件上传,但是众所周知当使用自带的文件上传功能时总会出现页面刷新的情况.当然现在有了html5这个好东西 ...

  5. js插件---Bootstrap 树控件

    js插件---Bootstrap 树控件 一.总结 一句话总结:可以直接用gojs,或者搜索js,jquery的树控件,或者bootstrap树控件,一大堆 gojs 二.JS组件系列——Bootst ...

  6. 左右选择框 js插件

    随着项目的进展,测试工程师在更多的浏览器中兼容性测试中,发现有些浏览器不支持option的触发事件,这就造成了先前一篇博文bootstrap 左右框多项选择示例 中左右选择框的失效,于是我就由原先的s ...

  7. 【jQuery小实例】js 插件 查看图片

    ---本系列文章所用使用js均可在本博客文件中找到. 像淘宝一样,鼠标放在某一件商品上,展示大图信息,甚至查看图片的具体部位.给人超炫的效果,这种效果实现基于js文件和js插件.大致可以分为三步,添加 ...

  8. jquery.validate.js插件使用

    jQuery验证控件jquery.validate.js使用说明+中文API 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-valid ...

  9. 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活

    图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) by zhangxinxu from http://www.zhangxinxu.com 本 ...

随机推荐

  1. OpenGL ES 3.0之VertexAttributes,Vertex Arrays,and Buffer Objects(九)

    顶点数据,也称为顶点属性,指每一个顶点数据.指能被用来描述每个顶点的数据,或能被所有顶点使用的常量值.例如你想绘制一个具有颜色的立方体三角形.你指定一个恒定的值用于三角形的所有三个顶点颜色.但三角形的 ...

  2. 【Python】torrentParser1.01

    在昨天的版本上做了一些改进,如增加getAll,修改getSingleFileName等 代码: #-------------------------------------------------- ...

  3. 刷完OpenWrt在浏览器无法访问的解决办法

    其实问题很明显. 是因为刷了trunk版固件. 并没有集成luci. 那接下来就是装luci.但是装luci需要联网(不过其实不联网其实也是可以安装的.) 我说的联网是让路有联网.而不是网线接路由,路 ...

  4. 面试总结——Java高级工程师(三)

    https://blog.csdn.net/moneyshi/article/details/53086927

  5. Windows 之 可以Ping通服务器但无法使用服务器连接的共享打印机

    故障现象:一个公司内部局域网中,一台电脑可以Ping通服务器,但无法使用服务器连接的共享打印机. 故障分析与排除:根据故障现象分析,由于客户端可以Ping通服务器,说明网络连接正常,故障可能是由客户端 ...

  6. LUN mask 和zone 区别

    问题: 在SAN网络中,只有一台存储时,该存储带有Map功能,可以将LUN Map到指定主机,那么FC Switch的zoning功能还有意义吗?有没有方法来证明这以意义的存在.即使存储不带有Map功 ...

  7. python enum 枚举

    http://www.cnblogs.com/codingmylife/archive/2013/05/31/3110656.html python 3.4+ from enum import Enu ...

  8. kafka性能测试(转)KAFKA 0.8 PRODUCER PERFORMANCE

    来自:http://blog.liveramp.com/2013/04/08/kafka-0-8-producer-performance-2/ At LiveRamp, we constantly ...

  9. Visual Studio修改可执行程序的文件名和路径

  10. 如何进入docker容器

    http://blog.csdn.net/u010397369/article/details/41045251