编写兼容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 相关文章推荐
js数字输入框(包括最大值最小值限制和四舍五入)
Nov 24 Javascript
原生js实现半透明遮罩层效果具体代码
Jun 06 Javascript
node.js中的http.response.setHeader方法使用说明
Dec 14 Javascript
浅析Node.js 中 Stream API 的使用
Oct 23 Javascript
JavaScript实现定时页面跳转功能示例
Feb 14 Javascript
通过构造函数实例化对象的方法
Jun 28 Javascript
vue2.0 elementUI制作面包屑导航栏
Feb 22 Javascript
微信小程序上传图片实例
May 28 Javascript
详解react阻止无效重渲染的多种方式
Dec 11 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
Apr 29 Javascript
vue-cli3 引入 font-awesome的操作
Aug 11 Javascript
element-ui封装一个Table模板组件的示例
Jan 04 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
杏林同学录(二)
2006/10/09 PHP
php读取mysql中文数据出现乱码的解决方法
2013/08/16 PHP
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
javascript实现焦点滚动图效果 具体方法
2013/06/24 Javascript
js 实现日期灵活格式化的小例子
2013/07/14 Javascript
JSP跨iframe如何传递参数实现代码
2013/09/21 Javascript
input链接页面、打开新网页等等的具体实现
2013/12/30 Javascript
JavaScript数组前面插入元素的方法
2015/04/06 Javascript
jQuery简单实现两级下拉菜单效果代码
2015/09/15 Javascript
jQuery Mobile框架中的表单组件基础使用教程
2016/05/17 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
2016/06/22 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
2016/08/23 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
详解Vue 事件驱动和依赖追踪
2017/04/22 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
js自定义Tab选项卡效果
2017/06/05 Javascript
使用vue.js在页面内组件监听scroll事件的方法
2018/09/11 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
python调用新浪微博API项目实践
2014/07/28 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
浅谈python中的__init__、__new__和__call__方法
2017/07/18 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
50行Python代码实现人脸检测功能
2018/01/23 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
python 制作磁力搜索工具
2021/03/04 Python
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
安全事故检讨书
2014/01/18 职场文书
网络编辑岗位职责范本
2014/02/10 职场文书
软件售后服务方案
2014/05/29 职场文书
2014年教师节国旗下讲话稿
2014/09/10 职场文书
交通事故代理词范文
2015/05/23 职场文书
分享五个Node.js开发的优秀实践 
2022/04/07 NodeJs
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js