让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 相关文章推荐
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
Sep 22 Javascript
Extjs学习笔记之一 初识Extjs之MessageBox
Jan 07 Javascript
JS字符串截取函数实例
Dec 27 Javascript
JavaScript及jquey实现多个数组的合并操作
Sep 06 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
Mar 24 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
Dec 24 Javascript
web 前端常用组件之Layer弹出层组件
Sep 22 Javascript
jsonp跨域请求实现示例
Mar 13 Javascript
Angular2.js实现表单验证详解
Jun 23 Javascript
详解vue-router导航守卫
Jan 19 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
Jul 19 Javascript
nestjs返回给前端数据格式的封装实现
Feb 22 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 mysql数据库操作分页类
2008/06/04 PHP
php实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
禁用JavaScript控制台调试的方法
2014/03/07 Javascript
JavaScript获取图片的原始尺寸以宽度为例
2014/05/04 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
jQuery中triggerHandler()方法用法实例
2015/01/19 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
微信小程序 template模板详解及实例代码
2017/03/09 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
JavaScript数组去重算法实例小结
2018/05/07 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
[43:26]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第二场 11.20
2020/11/23 DOTA
python数字图像处理之高级滤波代码详解
2017/11/23 Python
Python中django学习心得
2017/12/06 Python
python 获取list特定元素下标的实例讲解
2018/04/09 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
2020/03/30 Python
Python基于Faker假数据构造库
2020/11/30 Python
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
PHP如何对用户密码进行加密
2014/07/31 面试题
新驾驶员个人自我评价
2014/01/03 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
《神奇的克隆》教学反思
2014/04/10 职场文书
大学学风建设方案
2014/05/04 职场文书
招标承诺书
2014/08/30 职场文书
团队会宣传标语
2014/10/09 职场文书
人民调解协议书范本
2014/10/11 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
python 常用的异步框架汇总整理
2021/06/18 Python
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android
Redis高可用集群redis-cluster详解
2022/03/20 Redis