变态的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. 使用 HTML5, javascript, webrtc, websockets, Jetty 和 OpenCV 实现基于 Web 的人脸识别

    这是一篇国外的文章,介绍如何通过 WebRTC.OpenCV 和 WebSocket 技术实现在 Web 浏览器上的人脸识别,架构在 Jetty 之上. 实现的效果包括: 还能识别眼睛 人脸识别的核心 ...

  2. @TargetAPI + 版本判断实现高低API版本兼容

    安卓开发中,在低版本SDK使用高版本的API会报错.一般处理方法是换一种实现方法,或者在高版本SDK中使用高版本API,低版本SDK中使用效果可能会差点的折衷方案:后者可以用如下技巧来实现. 步骤 S ...

  3. mybatis自定义枚举转换类

    转载自:http://my.oschina.net/SEyanlei/blog/188919 mybatis提供了EnumTypeHandler和EnumOrdinalTypeHandler完成枚举类 ...

  4. DELL平板如何安装WIN10系统-磁盘分区问题

    已经进入PE之后,在这一步的时候,可以把默认的系统分区都移除,但是在计算机管理可能右击没有这个菜单,要用专门的软件弄   不要用分区助手,会提示不能对动态磁盘进行操作,要用Disk Genius(他的 ...

  5. php理解变量的作用域

    作用域是指在一个脚本中某个变量可以使用或可见的范围,php具有6项基本的作用域规则. 1.内置超级全局变量可以在脚本的任何地方使用和可见. 2.常量,一旦被声明,将可以在全局可见:也就是说,它们在函数 ...

  6. Java WebSockets

    https://github.com/TooTallNate/Java-WebSocket Java WebSockets This repository contains a barebones W ...

  7. 排序基础之非比较的计数排序、桶排序、基数排序(Java实现)

    转载请注明原文地址: http://www.cnblogs.com/ygj0930/p/6639353.html  比较和非比较排序 快速排序.归并排序.堆排序.冒泡排序等比较排序,每个数都必须和其他 ...

  8. 〖Linux〗实时更新 hosts 文件的脚本

    适用场景: 下载了一个smarthosts的hosts文件,但hosts文件过旧导致一些ip地址已失效无法访问网络. 脚本使用: ./hostsupdate # 直接从 /etc/hosts 中获得需 ...

  9. 子类化QTreeWidgetItem实现增加Item的属性

    因为有需求是点击QTreeWidgetItem需要获取该Item的节点的相关属性,Item需要保存关联的属性,那么就需要扩展QTreeWidgetItem,当然,C++中扩展修改一个类或组件的方式就是 ...

  10. hdu 4122 Alice&#39;s mooncake shop (线段树)

    题目大意: 一个月饼店每一个小时做出月饼的花费不一样. 储存起来要钱.最多存多久.问你把全部订单做完的最少花费. 思路分析: ans = segma( num[]*(cost[] + (i-j)*s) ...