中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

JavaScript中解決多瀏覽器兼容性23個問題的快速解決方法
來源:易賢網 閱讀:1238 次 日期:2016-06-27 11:33:04
溫馨提示:易賢網小編為您整理了“JavaScript中解決多瀏覽器兼容性23個問題的快速解決方法”,方便廣大網友查閱!

下面小編就為大家帶來一篇JavaScript中解決多瀏覽器兼容性23個問題的快速解決方法。小編覺得挺不錯的,現在分享給大家,也給大家做個參考。

一、document.formName.item(”itemName”) 問題

問題說明:IE下,可以使用 document.formName.item(”itemName”) 或 document.formName.elements ["elementName"];Firefox 下,只能使用document.formName.elements["elementName"]。

解決方法:統一使用document.formName.elements["elementName"]。

二、集合類對象問題

問題說明:IE下,可以使用 () 或 [] 獲取集合類對象;Firefox下,只能使用 [ ]獲取集合類對象。

解決方法:統一使用 [] 獲取集合類對象。

三、自定義屬性問題

問題說明:IE下,可以使用獲取常規屬性的方法來獲取自定義屬性,也可以使用 getAttribute() 獲取自定義屬性;Firefox下,只能使用 getAttribute() 獲取自定義屬性。

解決方法:統一通過 getAttribute() 獲取自定義屬性。

四、eval(”idName”)問題

問題說明:IE下,可以使用 eval(”idName”) 或 getElementById(”idName”) 來取得 id 為 idName 的HTML對象;Firefox下,只能使用 getElementById(”idName”) 來取得 id 為 idName 的HTML對象。

解決方法:統一用 getElementById(”idName”) 來取得 id 為 idName 的HTML對象。

五、變量名與某HTML對象ID相同的問題

問題說明:IE下,HTML對象的ID可以作為 document 的下屬對象變量名直接使用,Firefox下則不能;Firefox下,可以使用與HTML對象ID相同的變量名,IE下則不能。

解決方法:使用 document.getElementById(”idName”) 代替 document.idName。最好不要取HTML對象ID相同的變量名,以減少錯誤;在聲明變量時,一律加上var關鍵字,以避免歧義。

六、const問題

問題說明:Firefox下,可以使用const關鍵字或var關鍵字來定義常量;IE下,只能使用var關鍵字來定義常量。

解決方法:統一使用var關鍵字來定義常量。

七、input.type屬性問題

問題說明:IE下 input.type 屬性為只讀;但是Firefox下 input.type 屬性為讀寫。

解決辦法:不修改 input.type 屬性。如果必須要修改,可以先隱藏原來的input,然后在同樣的位置再插入一個新的input元素。

八、window.event問題

問題說明:window.event 只能在IE下運行,而不能在Firefox下運行,這是因為Firefox的event只能在事件發生的現場使用。

解決方法:在事件發生的函數上加上event參數,在函數體內(假設形參為evt)使用 var myEvent = evt?evt:(window.event?window.event:null)

示例:

<input type="button" onclick="doSomething(event)"/>

<script language="javascript">

function doSomething(evt) {

var myEvent = evt?evt:(window.event?window.event:null)

...

}

九、event.x與event.y問題

問題說明:IE下,even對象有x、y屬性,但是沒有pageX、pageY屬性;Firefox下,even對象有pageX、pageY屬性,但是沒有x、y屬性。

解決方法:var myX = event.x ? event.x : event.pageX; var myY = event.y ? event.y:event.pageY;

如果考慮第8條問題,就改用myEvent代替event即可。

十、event.srcElement問題

問題說明:IE下,even對象有srcElement屬性,但是沒有target屬性;Firefox下,even對象有target屬性,但是沒有srcElement屬性。

解決方法:使用srcObj = event.srcElement ? event.srcElement : event.target;

如果考慮第8條問題,就改用myEvent代替event即可。

十一、window.location.href問題

問題說明:IE或者Firefox2.0.x下,可以使用window.location或window.location.href;Firefox1.5.x下,只能使用window.location。

解決方法:使用 window.location 來代替 window.location.href。當然也可以考慮使用 location.replace()方法。

十二、模態和非模態窗口問題

問題說明:IE下,可以通過showModalDialog和showModelessDialog打開模態和非模態窗口;Firefox下則不能。

解決方法:直接使用 window.open(pageURL,name,parameters) 方式打開新窗口。

如果需要將子窗口中的參數傳遞回父窗口,可以在子窗口中使用window.opener來訪問父窗口。如果需要父窗口控制子窗口的話,使用 var subWindow = window.open(pageURL,name,parameters); 來獲得新開的窗口對象。

十三、frame和iframe問題

以下面的frame為例:

(1)訪問frame對象

IE:使用window.frameId或者window.frameName來訪問這個frame對象;

Firefox:使用window.frameName來訪問這個frame對象;

解決方法:統一使用 window.document.getElementById(”frameId”) 來訪問這個frame對象;

(2)切換frame內容

在IE和Firefox中都可以使用 window.document.getElementById(”frameId”).src = “webjx.com.html”或 window.frameName.location = “webjx.com.html”來切換frame的內容;

如果需要將frame中的參數傳回父窗口,可以在frame中使用parent關鍵字來訪問父窗口。

十四、body載入問題

問題說明:Firefox的body對象在body標簽沒有被瀏覽器完全讀入之前就存在;而IE的body對象則必須在body標簽被瀏覽器完全讀入之后才存在。

[注] 這個問題尚未實際驗證,待驗證后再來修改。

[注] 經驗證,IE6、Opera9以及FireFox2中不存在上述問題,單純的JS腳本可以訪問在腳本之前已經載入的所有對象和元素,即使這個元素還沒有載入完成。

十五、事件委托方法

問題說明:IE下,使用 document.body.onload = inject; 其中function inject()在這之前已被實現;在Firefox下,使用 document.body.onload = inject();

解決方法:統一使用 document.body.onload=new Function('inject()'); 或者 document.body.onload = function(){/* 這里是代碼 */}

[注意] Function和function的區別

十六、訪問的父元素的區別

問題說明:在IE下,使用 obj.parentElement 或 obj.parentNode 訪問obj的父結點;在firefox下,使用 obj.parentNode 訪問obj的父結點。

解決方法:因為firefox與IE都支持DOM,因此統一使用obj.parentNode 來訪問obj的父結點。

十七、innerText的問題.

問題說明:innerText在IE中能正常工作,但是innerText在FireFox中卻不行。

解決方法:在非IE瀏覽器中使用textContent代替innerText。

示例:

if(navigator.appName.indexOf("Explorer") >-1){

document.getElementById('element').innerText = "my text";

} else{

document.getElementById('element').textContent = ";my text";

}

[注] innerHTML 同時被ie、firefox等瀏覽器支持,其他的,如outerHTML等只被ie支持,最好不用。

十八、Table操作問題

問題說明:ie、firefox以及其它瀏覽器對于 table 標簽的操作都各不相同,在ie中不允許對table和tr的innerHTML賦值,使用js增加一個tr時,使用appendChild方法也不管用。document.appendChild在往表里插入行時FIREFOX支持,IE不支持

解決辦法:把行插入到TBODY中,不要直接插入到表

解決方法:

//向table追加一個空行:

var row = otable.insertRow(-1);

var cell = document.createElement("td");

cell.innerHTML = "";

cell.className = "XXXX";

row.appendChild(cell);

[注] 建議使用JS框架集來操作table,如JQuery。

• 獲取table的行數和列數

在IE中,獲取行列數可以使用下面的代碼:

var detailT= grid.gettable("11");

//獲取行的長度

var r=detailT.rows.length;

//獲取列的長度

var l=detailT.cells.length;

而在火狐或谷歌中獲取列的長度就是無效的。

解決方案:

var detailT= grid.gettable("11");

//獲取行的長度

var r=detailT.rows.length;

//獲取列的長度

var l=detailT.rows[0].cells.length;

十九、對象寬高賦值問題

問題說明:FireFox中類似 obj.style.height = imgObj.height 的語句無效。

解決方法:統一使用 obj.style.height = imgObj.height + ‘px';

二十、setAttribute('style','color:red;')

FIREFOX支持(除了IE,現在所有瀏覽器都支持),IE不支持

解決辦法:不用setAttribute('style','color:red')

而用object.style.cssText = ‘color:red;'(這寫法也有例外)

最好的辦法是上面種方法都用上,萬無一失

二一、類名設置

setAttribute('class','styleClass')

FIREFOX支持,IE不支持(指定屬性名為class,IE不會設置元素的class屬性,相反只使用setAttribute時IE自動識CLASSNAME屬性)

解決辦法:

setAttribute('class','styleClass')

setAttribute('className','styleClass')

或者直接 object.className='styleClass';

IE和FF都支持object.className。

二二、用setAttribute設置事件

var obj = document.getElementById('objId');

obj.setAttribute('onclick','funcitonname();');

FIREFOX支持,IE不支持

解決辦法:

IE中必須用點記法來引用所需的事件處理程序,并且要用賦予匿名函數

如下:

var obj = document.getElementById('objId');

obj.onclick=function(){fucntionname();};

這種方法所有瀏覽器都支持

二三、建立單選鈕

IE以外的瀏覽器

var rdo = document.createElement('input');

rdo.setAttribute('type','radio');

rdo.setAttribute('name','radiobtn');

rdo.setAttribute('value','checked');

IE:

var rdo =document.createElement(”<input name=”radiobtn” type=”radio” value=”checked” />”);

解決辦法:

這一點區別和前面的都不一樣。這次完全不同,所以找不到共同的辦法來解決,那么只有IF-ELSE了

萬幸的是,IE可以識別出document的uniqueID屬性,別的瀏覽器都不可以識別出這一屬性。問題解決。

以上這篇JavaScript中解決多瀏覽器兼容性23個問題的快速解決方法就是小編分享給大家的全部內容了,希望能給大家一個參考

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲精品在线视频观看| 久久精品在线免费观看| 国产精品福利网| 国产精品日韩欧美一区| 国产精品高清一区二区三区| 国产日韩精品一区观看| 亚洲国产精品久久久久| 性8sex亚洲区入口| 欧美国产视频日韩| 国产日韩欧美成人| 一区二区三区四区蜜桃| 久久综合九色欧美综合狠狠| 国产精品亚发布| 国产伪娘ts一区| 国产日产欧产精品推荐色 | 欧美主播一区二区三区| 性做久久久久久久免费看| 男女视频一区二区| 国产偷国产偷亚洲高清97cao| 亚洲电影av| 新片速递亚洲合集欧美合集| 欧美日韩无遮挡| 亚洲精品人人| 黄色精品网站| 亚洲一区二区三区四区中文| 欧美国产三级| 国内一区二区三区在线视频| 亚洲视频在线观看三级| 欧美第一黄网免费网站| 在线日韩av| 久久天堂成人| 在线欧美日韩精品| 裸体丰满少妇做受久久99精品 | 亚洲精品视频一区| 久久精品国产第一区二区三区最新章节| 欧美日韩精品一区| 亚洲精品在线三区| 免费不卡在线观看| 亚洲一区二区精品| 亚洲先锋成人| 欧美日韩国产探花| 国产精品免费视频xxxx| 亚洲私人影院| 国产欧美成人| 久久久久网站| 在线日本高清免费不卡| 蜜月aⅴ免费一区二区三区| 激情偷拍久久| 欧美成人精品| 亚洲一区二区三区高清不卡| 国产精品电影网站| 久久国产夜色精品鲁鲁99| 伊人久久综合97精品| 免费日韩成人| 亚洲视频高清| 好吊妞**欧美| 欧美护士18xxxxhd| 亚洲欧洲99久久| 在线成人h网| 欧美天堂亚洲电影院在线观看 | 亚洲视频1区| 国产精品无人区| 噜噜噜久久亚洲精品国产品小说| 亚洲精品久久嫩草网站秘色| 国产精品成人国产乱一区| 久久精品在线| 亚洲视频日本| 怡红院av一区二区三区| 国产精品草莓在线免费观看| 久久精品视频在线播放| 99re热这里只有精品免费视频| 国产精品自在在线| 欧美理论在线播放| 久久久精品999| 亚洲视频在线观看视频| 在线观看精品视频| 国产精品羞羞答答| 欧美精品一区二区精品网| 久久国内精品自在自线400部| 亚洲精品在线观看视频| 激情小说另类小说亚洲欧美| 国产精品久久久久久久电影| 欧美二区在线| 久久天天狠狠| 久久久久中文| 欧美在线一区二区| 亚洲在线播放电影| 夜夜嗨av一区二区三区四区| 伊人精品久久久久7777| 国内精品视频666| 国产日韩av在线播放| 国产精品劲爆视频| 欧美日韩国产999| 久久欧美中文字幕| 久久久免费精品| 久久久99精品免费观看不卡| 亚洲欧美中文日韩v在线观看| 亚洲午夜免费视频| 日韩视频不卡中文| 日韩视频一区二区三区在线播放免费观看 | av成人动漫| 亚洲日韩中文字幕在线播放| 极品少妇一区二区三区精品视频| 国产精品一级在线| 国产午夜精品久久久久久久| 国产欧美婷婷中文| 国产亚洲激情视频在线| 国产亚洲精品久久久久婷婷瑜伽 | 久久野战av| 久久一区二区精品| 猛男gaygay欧美视频| 久久人人超碰| 免费一级欧美片在线播放| 欧美96在线丨欧| 欧美日本免费一区二区三区| 欧美日韩国产bt| 国产精品成人在线| 国产日韩欧美在线一区| 韩国女主播一区| 91久久在线播放| 一本色道久久88精品综合| 一二三区精品| 午夜精品久久久久久久蜜桃app| 欧美亚洲一区二区在线| 美女精品一区| 国产精品久99| 国产一区二区丝袜高跟鞋图片| 韩国一区二区三区美女美女秀| 一区在线播放视频| 亚洲精品日韩综合观看成人91| 9人人澡人人爽人人精品| 亚洲永久在线| 欧美aaaaaaaa牛牛影院| 欧美午夜免费| 一区二区在线视频观看| 一本久道久久综合狠狠爱| 欧美一级大片在线观看| 欧美大片免费| 国产三级精品在线不卡| 99爱精品视频| 久久全球大尺度高清视频| 欧美日韩在线播放三区| 伊人久久婷婷| 中文成人激情娱乐网| 免费不卡在线观看| 国产三区精品| 一区二区国产在线观看| 久久精品国产第一区二区三区| 欧美精品在线观看| 黄色成人在线| 欧美一级久久久| 欧美日本免费| 亚洲美女色禁图| 久久综合伊人77777蜜臀| 国产精品日韩欧美| 99热精品在线| 欧美激情一区在线| 激情综合自拍| 欧美一区二区视频97| 欧美视频在线观看一区| 亚洲精品1区| 久久久久国产一区二区| 国产精品成人在线| 亚洲欧洲免费视频| 麻豆国产va免费精品高清在线| 国产精品久久久久久久午夜| 亚洲日本欧美| 美玉足脚交一区二区三区图片| 国产区日韩欧美| 亚洲一区二区三区国产| 欧美日韩在线电影| 日韩视频在线播放| 欧美日韩精品一区视频| 亚洲欧洲日韩综合二区| 久久成人综合视频| 国产一区二区精品| 欧美一区二区视频免费观看| 国产精品午夜在线| 亚洲欧美精品| 国产网站欧美日韩免费精品在线观看| 亚洲欧美国产77777| 国产精品免费区二区三区观看| 亚洲小说春色综合另类电影| 国产精品久久久久aaaa| 亚洲欧美电影院| 国产精品老牛| 久久精品视频va| 亚洲国产精品免费| 欧美日韩国产a| 正在播放亚洲一区| 国产免费亚洲高清| 久久日韩精品| 日韩视频一区二区| 国产精品乱码一区二区三区| 午夜精品一区二区三区在线播放 | 免费成人你懂的| 亚洲欧洲偷拍精品| 在线观看欧美日韩| 一本久道久久综合婷婷鲸鱼| 欧美a一区二区|