懒得说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 本 ...
随机推荐
- 使用CocoaPods来做iOS程序的包依赖管理
前言 每种语言发展到一个阶段,就会出现相应的依赖管理工具, 或者是中央代码仓库.比如 Java: maven,Ivy Ruby: gems Python: pip, easy_install Node ...
- HK Openstack Summit 归来有感
4天的Icehouse openstack Summit终于结束,从香港又回到了北京,我们的产品反响相当不错,吸引了很多的注意力和商谈.可是实际上我最近过得很憋屈,心灰意冷,没有了当初那么拼命的动力. ...
- AI单挑Dota 2世界冠军:被电脑虐哭……
OpenAI的机器人刚刚在 Dota2 1v1 比赛中战胜了人类顶级职业玩家 Denti.以建设安全的通用人工智能为己任的 OpenAI,通过“Self-Play”的方式,从零开始训练出了这个机器人. ...
- OpenStack云桌面系列【2】—OpenStack和Spice
OpenStack和VNC Openstack默认安装的訪问控制台基于VNC的.我们从Horizon进入主机实例的控制台,就是noVNC.我在之前的一篇文章里专门对noVNC也做过測试(http:// ...
- .NET 基于任务的异步模式(Task-based Asynchronous Pattern,TAP) async await
本文内容 概述 编写异步方法 异步程序中的控制流 API 异步方法 线程 异步和等待 返回类型和参数 参考资料 下载 Demo 下载 Demo TPL 与 APM 和 EAP 结合(APM 和 EAP ...
- 自定义Spring注解bean的命名策略
由于项目的需要spring的业务相关的bean不是写在xml文件中,因为项目是一个模块一个模块提交的,提交的时候不想修改xml文件,因此就用到了spring的注解Service. 例如: Java代码 ...
- iOS界面篇 - bounds和frame的相同和区别
相同点: 他们都是CGRect类型,且拥有属性origin(x, y), size(weight, height) 不同点: bounds是你画的视图的边界,和父视图没有半毛钱关系 frames则一 ...
- 【树莓派】使用VNC远程登录树莓派的图形界面
我自己本人使用树莓派,就是ssh连接操作:但是由于实施的部分同学不熟悉Linux命令行操作,虽然之前我给搞过teamviewer方式,但是对他们而言,还是有点复杂,他们也不喜欢不熟悉用ssh,所以我尝 ...
- java动态代理_aop2
一.什么是代理? 代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对某个对象的访问.代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理. 代理模 ...
- sqlserver查询的结果复制到excel替换掉回车换行
从sqlserver查询统计出的结果复制到excel,如果有回车,换行 ,或回车换行 ,复制到excel显示会乱会错版,查询的时候就替换掉回车换行,复制出来就不会乱了 ) ), ),),'') fro ...