变态的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. oracle v$sqlarea 分析SQL语句使用资源情况 确认是否绑定变量

    -如何确定系统中是否存在绑定变量的情况:首先创建一个表,用于存放整理过得数据:create table t1 as select sql_text from v$sqlarea;----V$SQLAR ...

  2. 【转】java并发编程系列之ReadWriteLock读写锁的使用

    前面我们讲解了Lock的使用,下面我们来讲解一下ReadWriteLock锁的使用,顾明思义,读写锁在读的时候,上读锁,在写的时候,上写锁,这样就很巧妙的解决synchronized的一个性能问题:读 ...

  3. 磁盘I/O的性能评估方法

    磁盘I/O的性能评估方法 http://blog.synology.com/blog/?p=2086 通常,我们很容易观察到数据库服务器的内存和CPU压力.但是对I/O压力没有直观的判断方法.磁盘有两 ...

  4. Linux中查看系统版本的方法

    一.Linux系统中,XShell连接进去之后,查看系统版本的方法如下: 1.查找release文件 find /etc/ -name *-release 例如: 或者 2.查看release文件 c ...

  5. Linux下使用Nohup后台运行程序

    一.不输出日志的命令 #!/bin/bash echo "starting nohup..." nohup dotnet ./mynetcoreapp.dll > /dev/ ...

  6. 树莓派3中运行Netcore2.0程序

    一.简介 Netcore2.0发部后,可以运行在Arm平台上.因此,我们可以尝试在装了Debain的树莓派中运行. 二.方法: 1.在自己的电脑上使用VS写一个NetCore2.0的控制台程序,我假设 ...

  7. tomcat7配置

    <?xml version='1.0' encoding='utf-8'?><!-- Licensed to the Apache Software Foundation (ASF) ...

  8. [转发]jquery获取当前页面的URL信息

    以前在做网站的时候,经常会遇到当前页的分类高亮显示,以便让用户了解当前处于哪个页面.之前一直是在每个不同页面写方法.工程量大,也不便于修改.一直在想有什么简便的方法实现.后来在网上查到可以用获取当前U ...

  9. 〖Linux〗上传单个文件到FTP的Shell命令行(函数)

    #!/bin/bash - #=============================================================================== # # F ...

  10. http中的get和post的区别

    get:相当于查找数据,从server中取数据,不会改变server端的数据: post:相当于更新数据,他会更新server端的数据: 所有的http操作(增删改查)都能通过对应的get和post获 ...