编写兼容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 String.replace的妙用
Sep 08 Javascript
深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)
Jan 15 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
Apr 14 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
Jun 10 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
Jul 22 Javascript
AngularJs  unit-testing(单元测试)详解
Sep 02 Javascript
JavaScript-html标题滚动效果的简单实现
Sep 08 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
Apr 13 Javascript
html中通过JS获取JSON数据并加载的方法
Nov 30 Javascript
Vue实现移动端页面切换效果【推荐】
Nov 13 Javascript
Echart折线图手柄触发事件示例详解
Dec 16 Javascript
使用vue-cli脚手架工具搭建vue-webpack项目
Jan 14 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 三大特点:封装,继承,多态
2017/02/19 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
浅谈javascript 归并方法
2015/01/21 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
Angular ng-class详解及实例代码
2016/09/19 Javascript
移动端界面的适配
2017/01/11 Javascript
JavaScript中localStorage对象存储方式实例分析
2017/01/12 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
2017/05/27 Javascript
vue弹窗插件实战代码
2018/09/08 Javascript
[07:57]2018DOTA2国际邀请赛寻真——PSG.LGD凤凰浴火
2018/08/12 DOTA
python del()函数用法
2013/03/24 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
2017/11/15 Python
python flask安装和命令详解
2019/04/02 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
python实现简易学生信息管理系统
2020/04/05 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
Python实现括号匹配方法详解
2020/02/10 Python
django模板获取list中指定索引的值方式
2020/05/14 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
《自己去吧》教学反思
2016/02/16 职场文书
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle