• <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)

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            99久久国产主播综合精品 | 国产高潮国产高潮久久久| 无码精品久久久久久人妻中字| 久久久女人与动物群交毛片| 国产精品成人99久久久久| 亚洲精品乱码久久久久久自慰| 新狼窝色AV性久久久久久| 久久Av无码精品人妻系列| 国产精品狼人久久久久影院| 伊人久久大香线蕉综合影院首页 | 狠狠色丁香久久综合婷婷| 久久天天躁狠狠躁夜夜avapp | 久久e热在这里只有国产中文精品99| 精品多毛少妇人妻AV免费久久| 九九精品99久久久香蕉| 日日狠狠久久偷偷色综合免费| www亚洲欲色成人久久精品| 18禁黄久久久AAA片| 欧美成人免费观看久久| 欧美粉嫩小泬久久久久久久| 久久国产精品一区| 一级A毛片免费观看久久精品| 日本久久中文字幕| 婷婷综合久久中文字幕| 久久久久久a亚洲欧洲aⅴ| 亚洲中文久久精品无码| 亚洲欧美国产精品专区久久 | 精品国产乱码久久久久软件| 国产精品免费看久久久香蕉| 色欲综合久久中文字幕网| 久久久精品久久久久影院| 伊人色综合久久天天网| 久久99国产一区二区三区| 国产精品xxxx国产喷水亚洲国产精品无码久久一区| 久久中文字幕人妻熟av女| 久久国产AVJUST麻豆| 色偷偷91久久综合噜噜噜噜| 久久一区二区三区99| 亚洲精品WWW久久久久久 | 精品国产福利久久久| 国产精品久久永久免费|