Firefox兼容IE常用JS方法的扩展实现

作者:页面旅途

时间:2026-10-25

浏览:532

本文提供了几段JavaScript代码,旨在让Firefox浏览器支持IE特有的功能。包括通过原型扩展实现innerText的读写兼容,为HTMLElement和HTMLAnchorElement添加click方法以模拟IE行为,以及处理回车键事件的通用逻辑。这些代码片段可用于提升旧版Web应用在Firefox中的兼容性。

文章目录
这段代码使Firefox也支持IE的innerText方法

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)


HTMLElement与HTMLAnchorElement的click方法兼容

以下是相关代码:

 
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');
} 

跟踪回车键事件

Firefox中回车键事件的捕获与处理

以下是相关代码:

 
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;
} 

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章