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


Posted in Javascript onJanuary 02, 2010

这一段使得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; 
}
Javascript 相关文章推荐
JSQL 基于客户端的成绩统计实现方法
May 05 Javascript
有关于JS构造函数的重载和工厂方法
Apr 07 Javascript
js中符号转意问题示例探讨
Aug 19 Javascript
js计算字符串长度包含的中文是utf8格式
Oct 15 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
Jul 23 Javascript
jQuery实现定时读取分析xml文件的方法
Jul 16 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
Jul 04 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
Jan 19 Javascript
json数据处理及数据绑定
Jan 25 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
Apr 29 Javascript
基于Express框架使用POST传递Form数据
Aug 10 Javascript
在Angular中实现一个级联效果的下拉框的示例代码
May 20 Javascript
javascript getElementsByClassName 和js取地址栏参数
Jan 02 #Javascript
firefox插件Firebug的使用教程
Jan 02 #Javascript
firefox firebug中文入门教程 脚本之家新年特别版
Jan 02 #Javascript
Firefox+FireBug使JQuery的学习更加轻松愉快
Jan 01 #Javascript
20个非常棒的Jquery实用工具 国外文章
Jan 01 #Javascript
JavaScript与DropDownList 区别分析
Jan 01 #Javascript
HTML node相关的一些资料整理
Jan 01 #Javascript
You might like
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
php MessagePack介绍
2013/10/06 PHP
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
PHP将回调函数作用到给定数组单元的方法
2014/08/19 PHP
PHP简单实现冒泡排序的方法
2016/12/26 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
读jQuery之十 事件模块概述
2011/06/27 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
javascript 事件处理示例分享
2014/12/31 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
对JavaScript客户端应用编程的一些建议
2015/06/24 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
基于bootstrap写的一点localStorage本地储存
2017/11/21 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
jQuery操作事件完整实例分析
2020/01/10 jQuery
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
Kidsroom台湾:来自德国的婴儿用品
2017/12/11 全球购物
自荐书模板
2013/12/15 职场文书
毕业生的自我评价
2013/12/30 职场文书
医院竞聘演讲稿
2014/05/16 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
Golang中异常处理机制详解
2021/06/08 Golang
Java9新特性对HTTP2协议支持与非阻塞HTTP API
2022/03/16 Java/Android
海康机器人重磅发布全新算法开发平台VM4.2
2022/04/21 数码科技