让firefox支持IE的一些方法的javascript扩展函数代码

 更新时间:2010年01月02日 02:52:51   作者:  
因为一些代码,只能在IE下实现,如果用firefox实现就必须用一些扩展函数。
这一段使得FireFox也支持IE的innerText方法
复制代码 代码如下:

function isIE(){
if (window.navigator.userAgent.toLowerCase().indexOf("msie")>=1)
return true;
else
return false;
}
if(!isIE()){ //firefox innerText define
HTMLElement.prototype.__defineGetter__( "innerText",
function(){
var anyString = "";
var childS = this.childNodes;
for(var i=0; i <childS.length; i++) {
if(childS[i].nodeType==1)
anyString += childS[i].tagName=="BR" ? '\n' : childS[i].innerText;
else if(childS[i].nodeType==3)
anyString += childS[i].nodeValue;
}
return anyString;
}
);
HTMLElement.prototype.__defineSetter__( "innerText",
function(sText){
this.textContent=sText;
}
);
}

这一段使得FireFox的HTMLElement具有click方法(add click method to HTMLElement in Mozilla)
复制代码 代码如下:

try {
// create span element so that HTMLElement is accessible
document.createElement('span');
HTMLElement.prototype.click = function () {
if (typeof this.onclick == 'function')
this.onclick({type: 'click'});
};
}
catch (e) {
// alert('click method for HTMLElement couldn\'t be added');
}


对HTMLAnchorElement 加入onclick事件
复制代码 代码如下:

try {
// create a element so that HTMLAnchorElement is accessible
document.createElement('a');
HTMLElement.prototype.click = function () {
if (typeof this.onclick == 'function') {
if (this.onclick({type: 'click'}) && this.href)
window.open(this.href, this.target? this.target : '_self');
}
else if (this.href)
window.open(this.href, this.target? this.target : '_self');
};
}
catch (e) {
// alert('click method for HTMLAnchorElement couldn\'t be added');
}

跟踪回车键事件
复制代码 代码如下:

function captureKeys (evt) {
var keyCode = evt.keyCode ? evt.keyCode :
evt.charCode ? evt.charCode : evt.which;
if (keyCode == 13) {
// cancel key:
if (evt.preventDefault) {
evt.preventDefault();
}
var dq = getCookie('default-engine');
if( dq == null) dq = "baidu_txt";
submit_query( dq );
return false;
}
return true;
}

相关文章

  • JS实现的四叉树算法详解

    JS实现的四叉树算法详解

    这篇文章主要介绍了JS实现的四叉树算法,简单分析了四叉树的相关概念、原理、实现方法及操作注意事项,需要的朋友可以参考下
    2018-12-12
  • js实现页面跳转的五种方法推荐

    js实现页面跳转的五种方法推荐

    下面小编就为大家带来一篇js实现页面跳转的五种方法推荐。小编觉得挺不错的。现在分享给大家,让大家参考一下
    2016-03-03
  • 微信小程序云开发之新手环境配置

    微信小程序云开发之新手环境配置

    这篇文章主要为大家详细介绍了微信小程序云开发之新手环境配置,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • js实现鼠标移入图片放大效果

    js实现鼠标移入图片放大效果

    这篇文章主要为大家详细介绍了js实现鼠标移入图片放大效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • javascript获取元素离文档各边距离的方法

    javascript获取元素离文档各边距离的方法

    这篇文章主要介绍了javascript获取元素离文档各边距离的方法,以一个自定义函数形式分析了javascript针对文档各边距离的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • 如何使用JavaScript对图像进行压缩

    如何使用JavaScript对图像进行压缩

    上传图片时候遇到要上传很大的图片,上传的时候就会很慢,所以需要对图片进行压缩处理来优化上传功能,这篇文章主要给大家介绍了关于如何使用JavaScript对图像进行压缩的相关资料,需要的朋友可以参考下
    2024-03-03
  • JavaScript闭包和范围实例详解

    JavaScript闭包和范围实例详解

    这篇文章主要介绍了JavaScript闭包和范围,结合实例形式详细分析了javascript闭包的使用及变量的作用范围,需要的朋友可以参考下
    2016-12-12
  • JavaScript如何删除字符串中子字符串

    JavaScript如何删除字符串中子字符串

    本文介绍了如何从 JavaScript 中的字符串中删除子字符串,并提供了两种常用的方法:replace() 方法和 split() 方法,结合示例代码给大家介绍的非常详细,需要的朋友参考下吧
    2023-05-05
  • javascript函数报Uncaught ReferenceError: XXX is not defined

    javascript函数报Uncaught ReferenceError: XXX is not define

    本文主要介绍了javascript函数报Uncaught ReferenceError: XXX is not defined,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • 前端实现打印网页内容的解决方案(附完整代码)

    前端实现打印网页内容的解决方案(附完整代码)

    这篇文章主要介绍了如何使用JavaScript实现网页打印功能,主要通过Vue和Element Plus框架进行封装,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-02-02

最新评论