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

2021-05-11 13:38:42 字數 888 閱讀 2771

很多情況下,我們都要動態建立元素,比如動態建立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屬性。問題就出現了,**如下

這樣寫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的...