8.關於frame
(1)現有問題
在IE中可以用window.testFrame取得該frame,mf中不行
(2)解決方法
在frame的使用方面mf和IE的最主要的區別是:
如果在frame標簽中書寫了以下屬性:
那麼IE可以通過id或者name訪問這個frame對應的window對象
而mf只可以通過name來訪問這個frame對應的window對象
例如如果上述frame標簽寫在最上層的window裡面的htm裡面,那麼可以這樣訪問
IE:window.top.frameId或者window.top.frameName來訪問這個window對象
mf:只能這樣window.top.frameName來訪問這個window對象
另外,在mf和IE中都可以使用window.top.document.getElementById("frameId")來訪問frame標簽
並且可以通過window.top.document.getElementById("testFrame").src='xx.htm'來切換frame的內容
也都可以通過window.top.frameName.location='xx.htm'來切換frame的內容
關於frame和window的描述可以參見bbs的‘window與frame’文章
以及/test/Javascript/test_frame/目錄下面的測試
----adun2004.12.09修改
9.在mf中,自己定義的屬性必須getAttribute()取得
10.在mf中沒有parentElementparement.children而用
parentNodeparentNode.childNodes
childNodes的下標的含義在IE和MF中不同,MF使用DOM規范,childNodes中會插入空白文本節點。
一般可以通過node.getElementsByTagName()來回避這個問題。
當Html中節點缺失時,IE和MF對parentNode的解釋不同,例如
- <form>
- <table>
- <input/>
- < span>table>
- < span>form>
MF中input.parentNode的值為form,而IE中input.parentNode的值為空節點
MF中節點沒有removeNode方法,必須使用如下方法node.parentNode.removeChild(node)
11.const問題
(1)現有問題:
在IE中不能使用const關鍵字。如constconstVar=32;在IE中這是語法錯誤。
(2)解決方法:
不使用const,以var代替。
12.body對象
MF的body在body標簽沒有被浏覽器完全讀入之前就存在,而IE則必須在body完全被讀入之後才存在。