前端開發(fā)部分總結(jié)[兼容性、DOM操作、跨域等](持續(xù)更新)
更新時(shí)間:2010年03月04日 18:40:10 作者:
在公司做這個(gè)項(xiàng)目已經(jīng)6個(gè)多月了,總結(jié)一些問題,也算是拋磚引玉吧,希望更多的朋友一起分享一些技巧。
項(xiàng)目背景:.Net 3.5+MySQL+jQuery+WebService
在公司做這個(gè)項(xiàng)目已經(jīng)6個(gè)多月了,總結(jié)一些問題,也算是拋磚引玉吧,希望園子里更多的朋友一起分享一些技巧。
1、 WebService方法返回值不能為void。
當(dāng)WebService方法返回值為void時(shí),F(xiàn)F和Chrome會(huì)持續(xù)等待,認(rèn)為這個(gè)請(qǐng)求沒有結(jié)束,而在IE中一切是正常的。
2、當(dāng)input的type="button"時(shí)或者使用button時(shí),點(diǎn)擊后會(huì)觸發(fā)form的submit。
當(dāng)時(shí)查找頁面刷新的問題找了很久,最后才發(fā)現(xiàn)是button會(huì)自動(dòng)觸發(fā)form的submit,導(dǎo)致當(dāng)前頁面的刷新。
3、js設(shè)置document.domain只能從二級(jí)域名設(shè)置到頂級(jí)域名。
比如訪問moozi.cnblogs.com,可以在這個(gè)頁面中寫document.domain='cnblogs.com';如果把域設(shè)置為cnblogs.com之后,無法再使用document.domain='moozi.cnblogs.com';。
4、使用DOM片段創(chuàng)建iframe,當(dāng)跨域時(shí),不能用js寫iframe的域。
比如你在moozi.cnblogs.com/test.html頁面用js把域設(shè)置為document.domain='cnblogs.com',而此時(shí)你再用var ifrm=createElement('iframe') ,這時(shí)將不能用js設(shè)置iframe的域也為'cnblogs.com',只能讓ifrm.src='test2.htm',并在test2.htm中設(shè)置域document.domain='cnblogs.com'。
5、當(dāng)你修改過當(dāng)前域的時(shí)候,CKEditor是正常的,而tinyMCE需要重新設(shè)置域。
CKEditor能自動(dòng)識(shí)別當(dāng)前域,并不出錯(cuò)。tinyMCE需要人為的設(shè)置。同時(shí),如果你是用CKFinder上傳文件,而需要修改它的輸入代碼,不然會(huì)因?yàn)橛虿煌霈F(xiàn)沒有權(quán)限的錯(cuò)誤提示。
6、使用tinyMCE,盡管你的初始化代碼只有一句,但是可能出現(xiàn)多次初如化。發(fā)生原因未知,在不確定的情況下會(huì)出現(xiàn)此BUG。
7、開發(fā)js組件的時(shí)候,要時(shí)刻注意閉包和this的指代,這方面之前吃了不少虧。
8、將字符串轉(zhuǎn)換成jQuery對(duì)象時(shí),要注意字符串html代碼的閉合標(biāo)簽。
比如:var html='<span>test</span> 'var jqEl=$(html);此時(shí),jqEl會(huì)把html里的' '丟掉。
9、jQuery1.2.6和jQuery1.3在細(xì)節(jié)的處理上有一些區(qū)別。
jQuery1.2.6處理hasClass('.className')會(huì)出錯(cuò),而jQuery1.3不會(huì)。
10、盡量少用jQuery的each,多用js原生的代碼,性能較高。
在公司做這個(gè)項(xiàng)目已經(jīng)6個(gè)多月了,總結(jié)一些問題,也算是拋磚引玉吧,希望園子里更多的朋友一起分享一些技巧。
1、 WebService方法返回值不能為void。
當(dāng)WebService方法返回值為void時(shí),F(xiàn)F和Chrome會(huì)持續(xù)等待,認(rèn)為這個(gè)請(qǐng)求沒有結(jié)束,而在IE中一切是正常的。
2、當(dāng)input的type="button"時(shí)或者使用button時(shí),點(diǎn)擊后會(huì)觸發(fā)form的submit。
當(dāng)時(shí)查找頁面刷新的問題找了很久,最后才發(fā)現(xiàn)是button會(huì)自動(dòng)觸發(fā)form的submit,導(dǎo)致當(dāng)前頁面的刷新。
3、js設(shè)置document.domain只能從二級(jí)域名設(shè)置到頂級(jí)域名。
比如訪問moozi.cnblogs.com,可以在這個(gè)頁面中寫document.domain='cnblogs.com';如果把域設(shè)置為cnblogs.com之后,無法再使用document.domain='moozi.cnblogs.com';。
4、使用DOM片段創(chuàng)建iframe,當(dāng)跨域時(shí),不能用js寫iframe的域。
比如你在moozi.cnblogs.com/test.html頁面用js把域設(shè)置為document.domain='cnblogs.com',而此時(shí)你再用var ifrm=createElement('iframe') ,這時(shí)將不能用js設(shè)置iframe的域也為'cnblogs.com',只能讓ifrm.src='test2.htm',并在test2.htm中設(shè)置域document.domain='cnblogs.com'。
5、當(dāng)你修改過當(dāng)前域的時(shí)候,CKEditor是正常的,而tinyMCE需要重新設(shè)置域。
CKEditor能自動(dòng)識(shí)別當(dāng)前域,并不出錯(cuò)。tinyMCE需要人為的設(shè)置。同時(shí),如果你是用CKFinder上傳文件,而需要修改它的輸入代碼,不然會(huì)因?yàn)橛虿煌霈F(xiàn)沒有權(quán)限的錯(cuò)誤提示。
6、使用tinyMCE,盡管你的初始化代碼只有一句,但是可能出現(xiàn)多次初如化。發(fā)生原因未知,在不確定的情況下會(huì)出現(xiàn)此BUG。
7、開發(fā)js組件的時(shí)候,要時(shí)刻注意閉包和this的指代,這方面之前吃了不少虧。
8、將字符串轉(zhuǎn)換成jQuery對(duì)象時(shí),要注意字符串html代碼的閉合標(biāo)簽。
比如:var html='<span>test</span> 'var jqEl=$(html);此時(shí),jqEl會(huì)把html里的' '丟掉。
9、jQuery1.2.6和jQuery1.3在細(xì)節(jié)的處理上有一些區(qū)別。
jQuery1.2.6處理hasClass('.className')會(huì)出錯(cuò),而jQuery1.3不會(huì)。
10、盡量少用jQuery的each,多用js原生的代碼,性能較高。
您可能感興趣的文章:
- JavaScript call apply使用 JavaScript對(duì)象的方法綁定到DOM事件后this指向問題
- js學(xué)習(xí)總結(jié)之DOM2兼容處理重復(fù)問題的解決方法
- js學(xué)習(xí)總結(jié)之DOM2兼容處理順序問題的解決方法
- javascript 兼容所有瀏覽器的DOM擴(kuò)展功能
- Dom操作之兼容技巧分享
- Dom與瀏覽器兼容性說明
- DOM Scripting中的圖片切換[兼容Firefox]
- javascript firefox兼容ie的dom方法腳本
- javascript下有關(guān)dom以及xml節(jié)點(diǎn)訪問兼容問題
- js學(xué)習(xí)總結(jié)之DOM2兼容處理this問題的解決方法
相關(guān)文章
jquery插件之easing 動(dòng)態(tài)菜單
jQuery Easing Plugin 是一個(gè)簡(jiǎn)單的為對(duì)象擴(kuò)展高級(jí)屬性和選項(xiàng)的jQuery插件。2010-08-08jQuery實(shí)現(xiàn)批量判斷表單中文本框非空的方法(2種方法)
這篇文章主要介紹了jQuery實(shí)現(xiàn)批量判斷表單中文本框非空的方法,實(shí)例分析了2種實(shí)現(xiàn)判定非空的技巧,涉及jQuery頁面元素遍歷的相關(guān)技巧,需要的朋友可以參考下2015-12-12jquery ajax加載數(shù)據(jù)前臺(tái)渲染方式 不用for遍歷的方法
今天小編就為大家分享一篇jquery ajax加載數(shù)據(jù)前臺(tái)渲染方式 不用for遍歷的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08JQuery通過后臺(tái)獲取數(shù)據(jù)遍歷到前臺(tái)的方法
今天小編就為大家分享一篇JQuery通過后臺(tái)獲取數(shù)據(jù)遍歷到前臺(tái)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08JS 遍歷 json 和 JQuery 遍歷json操作完整示例
這篇文章主要介紹了JS 遍歷 json 和 JQuery 遍歷json操作,結(jié)合完整實(shí)例形式詳細(xì)分析了JavaScript與jQuery遍歷json格式數(shù)據(jù)的簡(jiǎn)單實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-11-11jQuery制作input提示內(nèi)容(兼容IE8以上)
這篇文章主要為大家詳細(xì)介紹了jQuery制作input提示內(nèi)容,兼容IE8以上,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07jQuery插件expander實(shí)現(xiàn)圖片翻轉(zhuǎn)特效
本文給大家分享的是一款基于jQuery插件expander實(shí)現(xiàn)圖片翻轉(zhuǎn)特效,一共有6種不同的圖片翻轉(zhuǎn)樣式,十分的炫酷,有需要的小伙伴可以參考下。2015-05-05