编写兼容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 相关文章推荐
jQuery中addClass()方法用法实例
Jan 05 Javascript
详解JavaScript的另类写法
Apr 11 Javascript
常用的js验证和数据处理总结
Aug 02 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
Nov 24 Javascript
JavaScript字符集编码与解码详谈
Feb 02 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
Feb 20 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
Mar 09 Javascript
jQuery中的deferred对象和extend方法详解
May 08 jQuery
react-router实现按需加载
May 09 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
Mar 13 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
Feb 15 Javascript
vuecli项目构建SSR服务端渲染的实现
Oct 30 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
如何选购合适的收音机
2021/03/01 无线电
加强版phplib的DB类
2008/03/31 PHP
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
JQUERY dialog的用法详细解析
2013/12/19 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
jquery动态分页效果堪比时光网
2014/09/25 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
微信JSAPI支付操作需要注意的细节
2017/01/10 Javascript
vue和webpack打包项目相对路径修改的方法
2018/06/15 Javascript
vue中如何去掉空格的方法实现
2018/11/09 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
Python查询Mysql时返回字典结构的代码
2012/06/18 Python
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
深入理解Python对Json的解析
2017/02/14 Python
python装饰器实例大详解
2017/10/25 Python
Python设计模式之门面模式简单示例
2018/01/09 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
利用python 下载bilibili视频
2020/11/13 Python
Python jieba库分词模式实例用法
2021/01/13 Python
商务英语专业自荐信
2013/10/14 职场文书
廉政教育心得体会
2014/01/01 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
运动会表扬稿
2015/01/16 职场文书
劳资员岗位职责
2015/02/13 职场文书
2015年人民调解工作总结
2015/05/18 职场文书
驻村工作简报
2015/07/20 职场文书
go语言中http超时引发的事故解决
2021/06/02 Golang