• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            (轉)IE和Firefox在JavaScript方面的兼容性

            1.document.formName.item("itemName") 問題

            說明:IE下,可以使用document.formName.item("itemName")或document.formName.elements ["elementName"];Firefox下,只能使用document.formName.elements["elementName"].
            解決方法:統一使用document.formName.elements["elementName"]. Text1:
            document.formName.item("itemName")        
            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,以避免歧義.
            6.const問題

            說明:Firefox下,可以使用const關鍵字或var關鍵字來定義常量;IE下,只能使用var關鍵字來定義常量.
            解決方法:統一使用var關鍵字來定義常量.
            7.input.type屬性問題

            說明:IE下input.type屬性為只讀;但是Firefox下input.type屬性為讀寫.
            8.window.event問題

            說明:window.event只能在IE下運行,而不能在Firefox下運行,這是因為Firefox的event只能在事件發生的現場使用.
            解決方法:
            IE:
            <input name="Button8_1" type="button" value="IE" onclick="javascript:gotoSubmit8_1()"/>
            ...
            <script language="javascript">
            function gotoSubmit8_1() {
            ...
            alert(window.event); //use window.event
            ...
            }
            </script>
            IE&Firefox:
            <input name="Button8_2" type="button" value="IE" onclick="javascript:gotoSubmit8_2(event)"/>
            ...
            <script language="javascript">
            function gotoSubmit8_2(evt) {
            ...
            evt=evt?evt:(window.event?window.event:null);
            alert(evt); //use evt
            ...
            }
            </script>

            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下,even對象有srcElement屬性,但是沒有target屬性;Firefox下,even對象有target屬性,但是沒有srcElement屬性.
            解決方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)來代替IE下的event.srcElement或者Firefox下的event.target.
            11.window.location.href問題

            說明:IE或者Firefox2.0.x下,可以使用window.location或window.location.href;Firefox1.5.x下,只能使用window.location.
            解決方法:使用window.location來代替window.location.href.

            12.模態和非模態窗口問題

            說明:IE下,可以通過showModalDialog和showModelessDialog打開模態和非模態窗口;Firefox下則不能.
            解決方法:直接使用window.open(pageURL,name,parameters)方式打開新窗口。

            如果需要將子窗口中的參數傳遞回父窗口,可以在子窗口中使用window.opener來訪問父窗口. 例如:var parWin = window.opener; parWin.document.getElementById("Aqing").value = "Aqing";


            13.frame問題

            以下面的frame為例:
            <frame src="xxx.html" id="frameId" name="frameName" />

            (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 = "xxx.html"或window.frameName.location = "xxx.html"來切換frame的內容.

            如果需要將frame中的參數傳回父窗口,可以在frme中使用parent來訪問父窗口。例如:parent.document.form1.filename.value="Aqing";


            14.body問題

            Firefox的body在body標簽沒有被瀏覽器完全讀入之前就存在;而IE的body則必須在body標簽被瀏覽器完全讀入之后才存在.

            例如:
            Firefox:
            <body>
            <script type="text/javascript">
            document.body.onclick = function(evt){
            evt = evt || window.event;
            alert(evt);
            }
            </script>
            </body>
            IE&Firefox:
            <body>
            </body>
            <script type="text/javascript">
            document.body.onclick = function(evt){
            evt = evt || window.event;
            alert(evt);
            }
            </script>

            posted on 2007-04-03 17:56 PeakGao 閱讀(226) 評論(0)  編輯 收藏 引用

            <2006年6月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            導航

            統計

            常用鏈接

            留言簿(9)

            隨筆分類(67)

            隨筆檔案(65)

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲精品国产美女久久久| 久久国产亚洲精品无码| 久久伊人影视| 国产产无码乱码精品久久鸭| 欧美大战日韩91综合一区婷婷久久青草| 国产叼嘿久久精品久久| 色欲综合久久躁天天躁| 国内精品久久国产| 亚洲中文久久精品无码ww16 | 久久久久久久尹人综合网亚洲 | 久久精品成人欧美大片| 99久久免费国产精品特黄| 久久午夜综合久久| 日本加勒比久久精品| 久久久久国产精品嫩草影院| 无码日韩人妻精品久久蜜桃 | 精品熟女少妇AV免费久久| 久久久久精品国产亚洲AV无码| 亚洲欧洲日产国码无码久久99| 国产午夜精品理论片久久影视| 国产精品久久久久久搜索| 国产精品久久久久久久久免费 | 99久久中文字幕| 久久久久亚洲av无码专区| 久久婷婷五月综合97色一本一本| 久久精品国产欧美日韩| 久久精品国产亚洲AV无码娇色| 久久久久亚洲AV综合波多野结衣| 精品综合久久久久久888蜜芽| 久久精品国产欧美日韩99热| 久久97久久97精品免视看| 三级韩国一区久久二区综合| 香蕉99久久国产综合精品宅男自| 久久久久亚洲爆乳少妇无| 久久精品夜夜夜夜夜久久| 久久99精品国产麻豆宅宅| 日韩va亚洲va欧美va久久| 婷婷久久综合| 中文无码久久精品| 亚洲精品无码专区久久同性男| 国产精品美女久久久久网|