编写兼容IE和FireFox的脚本


Posted in Javascript onMay 18, 2009

一、正式表达式问题
试图用以下表达式提取中括号“]”后面的内容,连接调用以下代码在IE下正常,FireFox则总是会用单数行的内容替代双数行的内容。
(/(\])([^ -}]*)/ig).exec(srcText);
newtext = "[部门]" + RegExp.$2;
后证实问题出在“ig”的“g”上,FireFox把RegExp当全局变量来处理,且没有及时更新$2,这种问题实在莫名其妙。
二、移除Select的条目
IE支持select.options.remove(index),FireFox却是select.remove(index),兼容的方法是select.options[i] = null;
三、showModalDialog
FireFox可以showModalDialog的了,不过如果showModalDialog出来的页面套了个frame,frame的页面取window.dialogArguments可以成功,FireFox不行,要用window.parent.dialogArguments来取。
四、childNodes
FF没有children,要兼容用childNodes,但IE和FF解释不一致,FF将空白文本、换行当成节点,为避免childNodes(index)取得的节点正确,HTML标识间不要有空格或换行 。
五、removeChild
FF中不能和node.removeNode(true),改为node.parentNode.removeChild(node)。
六、outerHTML
FF没有node.outerHTML,在调用node.parentNode.innerHTML来特别处理,若只是添加事件响应或设属性值,可直接element.onclick = function(){callxxx(x,y);}
七、script域问题
此问题原因不详,FF用<script type="text/javascript" src="inc/lib.js"></script>调用外部JS,在内部script中调用lib.js中的函数时,报告函数未定义,IE则无此问题。

Javascript 相关文章推荐
JavaScript ECMA-262-3 深入解析.第三章.this
Sep 28 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
Jan 25 Javascript
深入理解ECMAScript的几个关键语句
Jun 01 Javascript
jQuery 如何实现一个滑动按钮开关
Dec 01 Javascript
实例解析jQuery中如何取消后续执行内容
Dec 01 Javascript
基于daterangepicker日历插件使用参数注意的问题
Aug 10 Javascript
手机注册发送验证码倒计时的简单实例
Nov 15 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
Nov 22 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
Mar 07 Javascript
react 中父组件与子组件双向绑定问题
May 20 Javascript
JavaScript 作用域scope简单汇总
Oct 23 Javascript
vue倒计时刷新页面不会从头开始的解决方法
Mar 03 Javascript
innerText和innerHTML 一些问题分析
May 18 #Javascript
JS 页面自动加载函数(兼容多浏览器)
May 18 #Javascript
Js 本页面传值实现代码
May 17 #Javascript
JavaScript 验证浏览器是否支持javascript的方法小结
May 17 #Javascript
Javascript 强制类型转换函数
May 17 #Javascript
jQuery live
May 15 #Javascript
event.keyCode键码值表 附只能输入特定的字符串代码
May 15 #Javascript
You might like
php数组中包含中文的排序方法
2014/06/03 PHP
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
2018/04/20 PHP
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
2014/01/26 Javascript
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
减少访问DOM的次数提升javascript性能
2014/02/24 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
2015/06/18 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
react native 获取地理位置的方法示例
2018/08/28 Javascript
解决Vue+Element ui开发中碰到的IE问题
2018/09/03 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
2019/05/20 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
webpack proxy 使用(代理的使用)
2020/01/10 Javascript
实例说明Python中比较运算符的使用
2015/05/13 Python
python 队列详解及实例代码
2016/10/18 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
python邮件发送smtplib使用详解
2020/06/16 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
对python读写文件去重、RE、set的使用详解
2018/12/11 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
SQL面试题
2013/12/09 面试题
介绍一下linux的文件系统
2015/10/06 面试题
销售员求职个人的自我评价
2014/02/19 职场文书
新春联欢会主持词
2014/03/24 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
数学复习课教学反思
2016/02/18 职场文书
MyBatis 动态SQL全面详解
2021/10/05 MySQL