動態建立iframe IE與其他瀏覽器的不同

2021-08-29 19:38:20 字數 969 閱讀 1533

很多情況下,我們都要動態建立元素,比如動態建立iframe,iframe很特殊,它即可以看作是頁面元素,也可以看作是窗體物件。所以,所對應的取法也不同。比如當作是頁面元素的時候,這樣取:document.getelementbyid('iframe_id'),當作是窗體物件的時候取法就多了,主要有三種:1、window.frames[index] 2、window.frames['iframe_id'] 3、window.frames.iframe_id

這三種取法在ie裡都一樣,都能正確得到iframe物件,opera也能正常取出,但惟獨firefox卻不好使,不管你用哪種取法總是取不出!開始自己也一直想不通錯在了那裡,想可能是firefox瀏覽器本身的乙個bug,但通過這次專案終於真相大白!

專案要實現這樣乙個功能,動態建立乙個form表單來跨域提交資料,並將form表單的target設定成動態建立的iframe(頁面不會跳轉到提交的頁面)。即:myform.target="iframe_name"。那麼在建立iframe的時候就要給它賦name屬性。問題就出現了,**如下

這段**在firefox和opera下都很正常,但在ie下卻賦不了name屬性!!!

於是我想可能是因為這樣寫是把它當作了乙個頁面元素,所以賦不了,那麼就它作為乙個window物件,然後再賦name屬性。**如下:

這樣寫ie是正常了,可firefox確又不幹了!!!錯誤提示是window.frames.myfrm沒有這個屬性???無奈之下只好這麼寫:

這樣寫就一切正常了,於是我得出了這個結論:在firefox下,取窗體物件是window.frames.frame_name,而不是windwo.frames.frame_id,在沒寫frameobj.name = "myfrm";這句**的時候報沒有window.frames.myfrm沒有這個屬性錯誤就是這個原因。既然window.frames.frame_name可以,那麼window.frames[frame_name]和window.frames[index]當然也是可以的!

動態建立iframe IE與其他瀏覽器的不同

很多情況下,我們都要動態建立元素,比如動態建立iframe,iframe很特殊,它即可以看作是頁面元素,也可以看作是窗體物件。所以,所對應的取法也不同。比如當作是頁面元素的時候,這樣取 document.getelementbyid iframe id 當作是窗體物件的時候取法就多了,主要有三種 1...

程式設計與其他 一

剛剛無意看到最強大腦乙個人問另乙個人,英文本母中第18個字母是什麼,那人想了半天,扳手指頭數到第18個答出是r,但是接著問第26個字母是什麼呢,那人立刻答出 z。為什麼呢,因為大家都知道英文一共26個字母,而第26個即為最後乙個.因此我們幾乎都能立刻答出。於是我立刻聯想到這不就是資料結構中的陣列與鍊...

input 與其他元素對齊

相信大家一定遇到過input與其他元素無法對齊的情況,不論type是text radio checkbox,由於input有其獨特的預設樣式,padding和border 行高 字型樣式等。1.radio checkbox型別 2.text型別,移動端對齊問題居多,pc端沒對齊一般是由於input的...