各种浏览器兼容问题

 更新时间:2006年11月14日 00:00:00   作者:  
关于用脚本设置onload事件句柄

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

在IE、Opera均正常有效,唯独FF既不执行,也不报错,因为在FF,document.body.onload是undefined(未定义),把一个函数赋值给undefined既不会发生什么事情,也不算出错。
这么写的在IE、Opera和FF都有效:

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

关于用脚本绑定事件句柄
IE 下用 attachEvent, FF 下用 addEventListener

相关讨论如下:
http://search.blueidea.com/?q=addEventListener&bisearch=bbs
(基本上看几贴就明白了,我就不详细说了。请大家看的时候不要顶老贴,谢谢)

参考链接:
http://bbs.blueidea.com/viewthre ... p;page=1#pid2248824
http://bbs.blueidea.com/viewthread.php?tid=2507914
关于浮动代码和 documentElement / body
常常有人提问,为什么 漂浮广告 / 对联代码 在 xHTML 1.1 DTD 文件头 / FF 下不能使用
这是因为,按照标准来说,我们看到的窗体的滚动条不应该是 body 的,而是 HTML 的(也就是 document.documentElement 对象)
所以,解决办法是,把以前不标准的代码中, document.body.scrollTop 或者类似的代码变换为 document.documentElement.scrollTop
关于 ID 与 html 对象元素的引用
这个问题的原因非常非常多。但是一个基本的前提条件就是,对于IE 来说,一个HTML 元素的 ID 可以直接在脚本中当作变量名来使用,而 FF 中不可以。
复制代码 代码如下:
<input id="t1"><input type="button" value="click me" onclick="alert(t1.value)">

复制代码 代码如下:
<input id="t1"><input type="button" value="click me" onclick="alert(document.getElementById('t1').value)">

关于 事件对象的使用差异
IE 中,事件激发的时候,有一个全局的 window.event 对象保存了事件的相关信息
IE Only 

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

FF 中,事件激发的时候,将一个局部的 event 对象作为第一个参数传递给了事件处理函数
FF Only

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

此外,IE 的 event 对象和 FF 的 event 对象还稍有不同。
以下是我常用的兼容形式

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

参考
http://bbs.blueidea.com/thread-2667939-1-1.html

相关文章

  • 实现前后端数据交互方法汇总

    实现前后端数据交互方法汇总

    这篇文章给大家介绍几种常用的前后端数据交互方法,并给出使用建议。以提高前后端协同开发的效率。非常的详细,推荐给小伙伴们,有需要的小伙伴可以参考下。
    2015-04-04
  • 通过正则表达式获取url中参数的简单实现

    通过正则表达式获取url中参数的简单实现

    下面小编就为大家带来一篇通过正则表达式获取url中参数的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 如何让你的JS代码更好看易读

    如何让你的JS代码更好看易读

    本篇主要给广大JS程序员介绍了怎么能让自己写的JS代码好看易读,分析了几个需要注意的地方和方法,一起来学习下。
    2017-12-12
  • 深入了解js原型模式

    深入了解js原型模式

    在js中,创建对象的方式有工厂模式和构造函数模式等,但是,构造函数中的每个方法都需要在实例对象中重新创建一遍,不能复用,就需要使用原型模式来创建对象。下面我们来了解一下吧
    2019-05-05
  • JavaScript 高级篇之函数 (四)

    JavaScript 高级篇之函数 (四)

    本节我将分享我对函数,嵌套函数,作为数据的函数,作为对象的函数等
    2012-04-04
  • javascript的基础交互详解

    javascript的基础交互详解

    这篇文章主要介绍了javascript的基础交互详解,文章通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-10-10
  • javascript 中that的含义示例介绍

    javascript 中that的含义示例介绍

    var that = this;,这代表什么意思呢?this代表的是当前对象,var that=this就是将当前的this对象复制一份到that变量中,下面为大家介绍这样做有什么意义
    2014-05-05
  • javascript typeof id===''string''?document.getElementById(id):id解释

    javascript typeof id===''string''?document.getElementById(id

    刚开始学习js的朋友可能会有些疑问,其实这段代码使用js的三元运算符,这样代码看起来高大上,最主要是代码段少
    2016-11-11
  • JS中==与===操作符的比较

    JS中==与===操作符的比较

    js判断两个变量是否相等的一些操作符的比较。
    2009-03-03
  • 浅谈js闭包理解

    浅谈js闭包理解

    这篇文章主要介绍了js闭包理解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论