• <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)  編輯 收藏 引用

            <2007年4月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            導航

            統計

            常用鏈接

            留言簿(9)

            隨筆分類(67)

            隨筆檔案(65)

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            色综合久久久久网| 亚洲午夜久久久影院| 久久精品午夜一区二区福利| 久久伊人五月丁香狠狠色| 亚洲精品无码久久久久AV麻豆| 国产午夜福利精品久久| 国产免费福利体检区久久| 久久久久久亚洲精品不卡 | 成人精品一区二区久久| 久久国产乱子精品免费女| 91精品日韩人妻无码久久不卡| 国产成人精品综合久久久| 欧美精品乱码99久久蜜桃| 无码伊人66久久大杳蕉网站谷歌 | 日本三级久久网| 亚洲&#228;v永久无码精品天堂久久| 久久久WWW成人免费毛片| 亚洲精品无码久久千人斩| 久久91综合国产91久久精品| 亚洲国产成人久久综合一区77| 99久久婷婷免费国产综合精品| 国产成人综合久久久久久| 久久亚洲AV成人无码| 狠狠色丁香婷婷综合久久来来去| 亚洲色欲久久久久综合网| 精品久久久久久国产| 人人狠狠综合久久88成人| 久久91这里精品国产2020| 久久丫精品国产亚洲av不卡 | 亚洲中文字幕无码久久2017| 日本精品久久久久中文字幕8| 成人综合久久精品色婷婷| 国产亚洲精午夜久久久久久| 久久综合国产乱子伦精品免费 | 人人狠狠综合久久亚洲| 久久91精品国产91久久户| 怡红院日本一道日本久久 | 国产亚洲精品自在久久| 国内精品久久久久影院薰衣草| 久久人人爽人人爽人人片AV东京热| 久久久国产乱子伦精品作者|