window.event兼容脚本 1.2.屏蔽Form提交事件 3.获取事件源 4.添加事件兼容写法 5.Firefox注册innerText写法 6.长度 7.父控件下的子控件 8.XmlHttp 在开发Web应用时,浏览器兼容性问题经常困扰开发者,尤其是Firefox和Internet Explorer(IE)之间的差异。这篇小结主要关注JavaScript脚本在两种浏览器中的兼容性处理,包括事件处理、DOM操作以及Ajax通信等方面。 1. **window.event兼容脚本**: 在IE中,事件对象`event`是全局的,而在Firefox中,它作为函数参数传递。通过`getEvent()`函数,我们可以获取到当前事件,同时兼容IE和Firefox。函数内部通过判断条件检查事件对象是否存在,从而实现兼容。 2. **屏蔽Form提交事件**: 在阻止表单提交时,IE使用`event.returnValue=false;`,而Firefox使用`evt.preventDefault();`。这两种方式都可以防止表单默认的提交行为。 3. **获取事件源**: 获取触发事件的元素,IE使用`event.srcElement`,Firefox使用`event.target`。在编写跨浏览器的代码时,需要分别处理这两种情况。 4. **添加事件兼容写法**: 使用`addEvent`函数来添加事件监听器,这个函数会检查浏览器是否支持`attachEvent`(IE)或`addEventListener`(Firefox)。这样可以确保在不同浏览器中都能正确绑定事件处理函数。 5. **Firefox注册innerText写法**: `innerText`属性在IE中用于获取或设置元素的文本内容,但在Firefox中没有此属性。通过`__defineGetter__`和`__defineSetter__`方法,我们可以为Firefox的`HTMLElement`对象扩展`innerText`,使其具有与IE相同的行为。 6. **长度**: 设置CSS长度值时,Firefox需要单位(如px),而IE通常可以省略。在编写兼容代码时,可能需要为Firefox添加单位以避免样式问题。 7. **父控件下的子控件**: 在IE中,获取子元素通常使用`children`属性,它返回一个只包含元素节点的NodeList;Firefox则使用`childNodes`,它返回包括所有节点类型(元素、文本、注释等)的NodeList。如果只关心元素节点,需要对`childNodes`进行过滤。 8. **XmlHttp**: 在处理Ajax请求时,Firefox的`XmlHttp.send()`方法需要一个非空字符串,即使内容为空也需要传递`" "`,而IE允许直接传递`null`或不传。这是在创建跨浏览器的Ajax请求时需要注意的一个细节,以避免出现411错误(Length Required)。 编写兼容Firefox和IE的JavaScript代码需要对两者之间的差异有深入理解,并通过适当的技巧和函数来弥补这些差异。了解和掌握这些兼容性处理方法,有助于提升Web应用在各种浏览器上的用户体验。
- 粉丝: 9
- 资源: 946
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助