• <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 閱讀(227) 評論(0)  編輯 收藏 引用

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

            導航

            統計

            常用鏈接

            留言簿(9)

            隨筆分類(67)

            隨筆檔案(65)

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久精品国产精品青草| 青青草原1769久久免费播放| 狠狠色丁香婷婷综合久久来| 久久亚洲私人国产精品| 武侠古典久久婷婷狼人伊人| 中文国产成人精品久久不卡| 无码人妻久久一区二区三区免费 | 蜜臀av性久久久久蜜臀aⅴ| 亚洲国产精品久久久久| 亚洲精品国产美女久久久| 国产高清美女一级a毛片久久w| 亚洲国产精品无码久久九九| 久久久久夜夜夜精品国产| 久久天天躁狠狠躁夜夜2020一| 天天爽天天爽天天片a久久网| 久久er国产精品免费观看8| 天天躁日日躁狠狠久久| 久久久久亚洲精品中文字幕| 国内精品久久国产大陆| 日产精品久久久久久久| 色天使久久综合网天天| 久久综合九色欧美综合狠狠| 亚洲精品高清久久| 久久久久久狠狠丁香| 久久男人Av资源网站无码软件| 亚洲精品美女久久久久99小说 | AAA级久久久精品无码片| 久久精品国产色蜜蜜麻豆| 国产香蕉久久精品综合网| 久久精品人妻一区二区三区| 久久99精品国产麻豆不卡| 久久99精品九九九久久婷婷| 精品久久久无码中文字幕| 亚洲一区中文字幕久久| 久久综合久久久| 国产精品热久久毛片| 精品国产91久久久久久久a| 久久久久无码国产精品不卡| 四虎影视久久久免费| 久久精品国产亚洲AV蜜臀色欲| 亚洲AV无码久久精品色欲|