让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 相关文章推荐
javascript iframe中打开文件,并检测iframe存在否
Dec 28 Javascript
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
Oct 11 Javascript
node.js中的buffer.toString方法使用说明
Dec 14 Javascript
js控制网页背景音乐播放与停止的方法
Feb 06 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
Mar 08 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
Jul 08 Javascript
基于HTML+CSS+JS实现增加删除修改tab导航特效代码
Aug 05 Javascript
jQuery图片切换动画效果
Feb 28 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
Feb 11 Javascript
基于html+css+js实现简易计算器代码实例
Feb 28 Javascript
jQuery实现可以扩展的日历
Dec 01 jQuery
Javascript实现打鼓效果
Jan 29 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
S900/ ETON E1-XM 收音机
2021/03/02 无线电
UCenter 批量添加用户的php代码
2012/07/17 PHP
PHP中的print_r 与 var_dump 输出数组
2016/06/13 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
Jquery选中或取消radio示例
2013/09/29 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
jQuery结合ajax实现动态加载文本内容
2015/05/19 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
2016/03/07 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
2019/10/16 Javascript
vue接口请求加密实例
2020/08/11 Javascript
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
举例讲解Python中的算数运算符的用法
2015/05/13 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
TensorFLow 不同大小图片的TFrecords存取实例
2020/01/20 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
python 实现图片批量压缩的示例
2020/12/18 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
护士专业推荐信
2013/11/02 职场文书
事业单位公务员的职业生涯规划
2014/01/15 职场文书
兰兰过桥教学反思
2014/02/08 职场文书
《奇妙的国际互联网》 教学反思
2014/02/25 职场文书
保护环境建议书
2014/03/12 职场文书
女方家长婚礼致辞
2015/07/27 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
详解如何在Canvas中添加事件的方法
2021/04/17 Javascript
Python中threading库实现线程锁与释放锁
2021/05/17 Python
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL
openstack中的rpc远程调用的方法
2021/07/09 Python
Elasticsearch 索引操作和增删改查
2022/04/19 Python