1.document.formname.item("itemname") 問題
說明:ie下,可以使用document.formname.item("itemname")或document.formname.elements["elementname"];firefox下,只能使用document.formname.elements["elementname"].
解決方法:統一使用document.formname.elements["elementname"].
2.集合類物件問題
說明:ie下,可以使用()或獲取集合類物件;firefox下,只能使用獲取集合類物件.
解決方法:統一使用獲取集合類物件.
3.自定義屬性問題
說明:ie下,可以使用獲取常規屬性的方法來獲取自定義屬性,也可以使用getattribute()獲取自定義屬性;firefox下,只能使用getattribute()獲取自定義屬性.
解決方法:統一通過getattribute()獲取自定義屬性.
4.eval("idname")問題
說明:ie下,,可以使用eval("idname")或getelementbyid("idname")來取得id為idname的html物件;firefox下只能使用getelementbyid("idname")來取得id為idname的html物件.
解決方法:統一用getelementbyid("idname")來取得id為idname的html物件.
5.變數名與某html物件id相同的問題
說明:ie下,html物件的id可以作為document的下屬物件變數名直接使用;firefox下則不能.firefox下,可以使用與html物件id相同的變數名;ie下則不能。
解決方法:使用document.getelementbyid("idname")代替document.idname.最好不要取html物件id相同的變數名,以減少錯誤;在宣告變數時,一律加上var,以避免歧義.
7.input.type屬性問題
說明:ie下input.type屬性為唯讀;但是firefox下input.type屬性為讀寫.
9.event.x與event.y問題
說明:ie下,even物件有x,y屬性,但是沒有pagex,pagey屬性;firefox下,even物件有pagex,pagey屬性,但是沒有x,y屬性.
解決方法:使用mx(mx = event.x ? event.x : event.pagex;)來代替ie下的event.x或者firefox下的event.pagex.
10.event.srcelement問題
說明:ie下,event物件有srcelement屬性,但是沒有target屬性;firefox下,event物件有target屬性,但是沒有srcelement屬性.
解決方法:使用obj(obj = event.srcelement ? event.srcelement : event.target;)來代替ie下的event.srcelement或者firefox下的event.target.
13.frame問題
以下面的frame為例:
(1)訪問frame物件:
ie:使用window.frameid或者window.framename來訪問這個frame物件.
firefox:只能使用window.framename來訪問這個frame物件.
另外,在ie和firefox中都可以使用window.document.getelementbyid("frameid")來訪問這個frame物件.
(2)切換frame內容:
在ie和firefox中都可以使用window.document.getelementbyid("testframe").src = "***.html"或window.framename.location = "***.html"來切換frame的內容.
如果需要將frame中的引數傳回父視窗,可以在frme中使用parent來訪問父視窗。例如:parent.document.form1.filename.value="aqing";
14.body問題
firefox的body在body標籤沒有被瀏覽器完全讀入之前就存在;而ie的body則必須在body標籤被瀏覽器完全讀入之後才存在.
例如:
firefox:
ie&firefox:
15. 事件委託方法
ie:document.body.onload = inject; //function inject()在這之前已被實現
firefox:document.body.onload = inject();
有人說標準是:
document.body.οnlοad=new function('inject()');
16. firefox與ie(parentelement)的父元素的區別
ie:obj.parentelement
firefox:obj.parentnode
解決方法: 因為firefox與ie都支援dom,因此使用obj.parentnode是不錯選擇.
document.getelementbyid('element').innertext = "my text";
} else
終於完成了偶的拖動視窗,花了近15個小時,慶祝一下(*^__^*);以前寫了ie下的功能,於是又寫了firefox下的功能,在firefox上花了很多時間,發現了firefox中幾處與ie中不同的地方:
1.firefox不能對innertext支援,也不知道為什麼。firefox支援innerhtml但卻不支援innertext,所以上網查了一下,原來它改支援textcontent來實現innertext,不過實現得沒有那麼好,預設把多餘的空格也保留了。如果不用textcontent,如果字串裡面不包含html**也可以用innerhtml代替
2.禁止選取網頁內容:
在ie中一般用js:obj.onselectstart=function()
而firefox用css:-moz-user-select:none
3.濾鏡的支援(例:透明濾鏡):
ie:filter:alpha(opacity=10);
firefox:-moz-opacity:.10;
4.捕獲事件:
ie:obj.setcapture() 、obj.releasecapture()
firefox: document.addeventlistener("mousemove",mousemovefunction,true);
document.removeeventlistener("mousemove",mousemovefunction,true);
5.獲取滑鼠位置:
ie:event.clientx、event.clienty
firefox:需要事件函式傳遞事件物件
obj.οnmοusemοve=function(ev)
6.div等元素的邊界問題:
比如:設定乙個div的css::
ie中:div的寬度(包括邊框寬度):100px,div的高度(包括邊框寬度):100px;
而firefox:div的寬度(包括邊框寬度):102px,div的高度(包括邊框寬度):102px;
所以在做這個相容ie和firefox的拖動視窗時,在js和css的寫法上要動點腦筋,給大家兩個小技巧
一.判斷瀏覽器型別:
var isie=document.all? true:false;
我寫了乙個變數,如果支援document.all語法那麼isie=true,否則isie=false
二.在不同瀏覽器下的css處理:
一般可以用!important來優先使用css語句(僅firefox支援)
比如:在firefox下這個元素是沒有邊框的,在ie下邊框寬度是1px
又發現幾處xhtml與正常狀態下的js、css的區別
前階段寫了相容ie/firefox的拖動視窗發現了這兩個瀏覽器的幾處區別:發現幾處ie與firefox的js和css幾處不同點【原】
今天又寫了相容xhtml的版本,因為現在不是流行web標準嘛,偶不能落後啊!再說現在asp.net中的所有頁面都是應用xhtml標準的,如果在布局頁面中刪了這句標準**,裡面的布局和控制項visual studio就不顯示了。
呵呵,在網頁開頭加了這個**就是所謂的xhtml標準了http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
改了一下js和css,除錯了n次,發現了xhtml標準下的幾個不同點:
1.document.documentelement 與 document.body
**中設定頁面的css時一定要用:document.documentelement
比如:document.documentelement.style.overflow='hidden';
overflow-x、overflow-y 這兩個分座標屬性xhtml是不支援的;
**********所以我總結了一下僅clientwidth、clientheight、scrollleft、scrolltop和document.documentelement.style時才用document.documentelement
3.呵呵,加了這個標準以後ie的邊框問題也出現了變化,現在和firefox趨於一致了,是不是這個就是xhtml的優點——跨瀏覽器的標準
上篇文章提到:
設定乙個div的css::
ie中(正常情況):div的寬度(包括邊框寬度):100px,div的高度(包括邊框寬度):100px;
firefox(正常情況)::div的寬度(包括邊框寬度):102px,div的高度(包括邊框寬度):102px;
加了xhtml標準後的(ie和firefox打和了,^_^):
ie中(xhtml):div的寬度(包括邊框寬度):102px,div的高度(包括邊框寬度):102px;
firefox(xhtml)::div的寬度(包括邊框寬度):102px,div的高度(包括邊框寬度):102px;
IE和FF下JS和CSS的幾處不同
1.ajax下使用的物件不同 2.xmlhttprequestobject 物件的一些屬性不同 ie支援 xmlhttprequestobject.readystate 和 xmlhttprequestobject.readystate ff只支援 xmlhttprequestobject.read...
js在IE和ff之間的差異(相容)
1.在建立xmlhttprequest物件時存在相容 2.事件物件event的建立和屬性存在差異 ie中,event事件作為window物件的乙個屬性 而ff則作為引數傳遞給函式。同時ie阻止冒泡 阻止預設行為 事件源物件分別為 e.cancelbubble true returnvalue fal...
學習div float 在ff和ie下的布局區別
以上 顯示的結果如下,很正常,結果相同。下面會在這個基礎上進行修改,修改的內容都在style中,其他 就不再重複寫了。請注意,這裡的style中用到了min height,這個和height是不同的,min height指定了物件的乙個最小高度,當物件的子內容高度超過這個最小高度是,這個物件會自動撐...