懒得说IE6了,写个js插件不能写注释,原因如下
变态的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插件不能写注释,原因如下的更多相关文章
- jQuery Validate 表单验证插件----通过name属性来关联字段来验证,改变默认的提示信息,将校验规则写到 js 代码中
一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW 访问密码 f224 二. 添加一个另外一个插件jquery.validate.messages_cn.js. ...
- 如何写一个Js上传图片插件。
项目里面需要一个上传图片的插件,找了半天没有找到满意的,算了 不找了,自己写一个吧,顺便复习一下js方面的知识.完成之后效果还不错,当然还要继续优化,源码在最后. 介绍一种常见的js插件的写法 ; ( ...
- 解决IE6下PNG透明的JS插件:DD_belatedPNG.js
DD_belatedPNG是一款解决IE6下PNG透明的JS插件,支持background-position和background-repeat属性,支持伪类.使用方法: <!--[if lte ...
- 适用于各浏览器支持图片预览,无刷新异步上传js插件
文件上传无疑是web应用中一个非常常用的功能,不管是PHP.jsp还是aspx.mvc等都会需要文件上传,但是众所周知当使用自带的文件上传功能时总会出现页面刷新的情况.当然现在有了html5这个好东西 ...
- js插件---Bootstrap 树控件
js插件---Bootstrap 树控件 一.总结 一句话总结:可以直接用gojs,或者搜索js,jquery的树控件,或者bootstrap树控件,一大堆 gojs 二.JS组件系列——Bootst ...
- 左右选择框 js插件
随着项目的进展,测试工程师在更多的浏览器中兼容性测试中,发现有些浏览器不支持option的触发事件,这就造成了先前一篇博文bootstrap 左右框多项选择示例 中左右选择框的失效,于是我就由原先的s ...
- 【jQuery小实例】js 插件 查看图片
---本系列文章所用使用js均可在本博客文件中找到. 像淘宝一样,鼠标放在某一件商品上,展示大图信息,甚至查看图片的具体部位.给人超炫的效果,这种效果实现基于js文件和js插件.大致可以分为三步,添加 ...
- jquery.validate.js插件使用
jQuery验证控件jquery.validate.js使用说明+中文API 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-valid ...
- 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活
图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) by zhangxinxu from http://www.zhangxinxu.com 本 ...
随机推荐
- logistic回归具体解释(二):损失函数(cost function)具体解释
有监督学习 机器学习分为有监督学习,无监督学习,半监督学习.强化学习.对于逻辑回归来说,就是一种典型的有监督学习. 既然是有监督学习,训练集自然能够用例如以下方式表述: {(x1,y1),(x2,y2 ...
- 在CentOS 7上安装Kafka
简介 Kafka 是一种高吞吐的分布式发布订阅消息系统,能够替代传统的消息队列用于解耦合数据处理,缓存未处理消息等,同时具有更高的吞吐率,支持分区.多副本.冗余,因此被广泛用于大规模消息数据处理应用. ...
- 面试小结之Elasticsearch篇
https://www.cnblogs.com/luckcs/articles/7052932.html
- Go语言中Restful模式与Routes路由框架
1.用法: (1)导入包github.com/drone/routes (2)使用包中的New()方法建立一个routes.RouteMux对像的引用.其它也能理解为一个http.Handler,只是 ...
- PetaPoco使用
<?xml version="1.0" encoding="utf-8" ?> <configuration> <connecti ...
- 014-Go Web 对pg增删改查测试
1:data/data.go package data import( "fmt" "database/sql" _"github.com/lib/p ...
- WebSocket【转】
1.什么是WebSocket WebSocket 是一种自然的全双工.双向.单套接字连接.使用WebSocket,你的HTTP 请求变成打开WebSocket 连接(WebSocket 或者WebSo ...
- SpringMVC学习笔记七:SpringMVC统一异常处理
发现有位前辈写得比我从书上看到的还详细,我就不写了,前辈的博文地址如下: http://blog.csdn.net/eson_15/article/details/51731567
- JSP页面跳转之sendRedirect()与forward()辨析
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6044817.html 在JSP中,要实现页面的跳转,主要有两种方式实现:forward和sendRedire ...
- great tips in soapui
from this site :http://onebyteatatime.wordpress.com/2009/04/18/soapui-tips-n-tricks-part-2/