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

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            色婷婷久久综合中文久久一本| 一本色综合网久久| 精品久久久久香蕉网| 久久久精品国产sm调教网站| 97超级碰碰碰久久久久| 国内精品久久久久久久coent| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 亚洲av伊人久久综合密臀性色| 久久久青草青青亚洲国产免观| 亚洲国产成人久久笫一页| 久久精品亚洲AV久久久无码| 久久久中文字幕| 色狠狠久久AV五月综合| 国产免费久久精品99re丫y| 久久91精品久久91综合| 大香伊人久久精品一区二区| 久久精品视频网| 久久久亚洲欧洲日产国码aⅴ | 久久99精品国产一区二区三区| 亚洲精品午夜国产va久久| 久久电影网一区| 久久久久人妻精品一区二区三区| 色偷偷91久久综合噜噜噜噜| 久久er国产精品免费观看8| 97精品伊人久久大香线蕉app| 狠狠色婷婷久久综合频道日韩| 久久久久久久国产免费看| 婷婷综合久久狠狠色99h| 久久国产高潮流白浆免费观看| 久久无码专区国产精品发布| 手机看片久久高清国产日韩| 久久久精品久久久久特色影视| 国内精品伊人久久久久影院对白| 久久亚洲日韩精品一区二区三区| 久久久久久国产精品美女| 色狠狠久久综合网| 漂亮人妻被中出中文字幕久久 | 77777亚洲午夜久久多喷| 精品久久久久久久久免费影院 | 亚洲精品无码久久一线| 亚洲中文久久精品无码|