<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    牙牙窩

    BlogJava 聯系 聚合 管理
      8 Posts :: 21 Stories :: 10 Comments :: 0 Trackbacks
    以下以 IE 代替 Internet Explorer,以 MF 代替 Mozzila Firefox

    1. document.form.item 問題
    ??? (1)現有問題:
    ??????? 現有代碼中存在許多 document.formName.item("itemName") 這樣的語句,不能在 MF 下運行
    ??? (2)解決方法:
    ??????? 改用 document.formName.elements["elementName"]
    ??? (3)其它
    ??????? 參見 2

    2. 集合類對象問題
    ??? (1)現有問題:
    ??????? 現有代碼中許多集合類對象取用時使用 (),IE 能接受,MF 不能。
    ??? (2)解決方法:
    ??????? 改用 [] 作為下標運算。如:document.forms("formName") 改為 document.forms["formName"]。
    ??????? 又如:document.getElementsByName("inputName")(1) 改為 document.getElementsByName("inputName")[1]
    ??? (3)其它

    3. window.event
    ??? (1)現有問題:
    ??????? 使用 window.event 無法在 MF 上運行
    ??? (2)解決方法:
    ??????? MF 的 event 只能在事件發生的現場使用,此問題暫無法解決。可以這樣變通:
    ??????? 原代碼(可在IE中運行):
    ??????????? <input type="button" name="someButton" value="提交" onclick="javascript:gotoSubmit()"/>
    ??????????? ...
    ??????????? <script language="javascript">
    ??????????????? function gotoSubmit() {
    ??????????????????? ...
    ??????????????????? alert(window.event);??? // use window.event
    ??????????????????? ...
    ??????????????? }
    ??????????? </script>

    ??????? 新代碼(可在IE和MF中運行):
    ??????????? <input type="button" name="someButton" value="提交" onclick="javascript:gotoSubmit(event)"/>
    ??????????? ...
    ??????????? <script language="javascript">
    ??????????????? function gotoSubmit(evt) {
    ??????????????????? evt = evt ? evt : (window.event ? window.event : null);
    ??????????????????? ...
    ??????????????????? alert(evt);???????????? // use evt
    ??????????????????? ...
    ??????????????? }
    ??????????? </script>
    ??????? 此外,如果新代碼中第一行不改,與老代碼一樣的話(即 gotoSubmit 調用沒有給參數),則仍然只能在IE中運行,但不會出錯。所以,這種方案 tpl 部分仍與老代碼兼容。

    4. HTML 對象的 id 作為對象名的問題
    ??? (1)現有問題
    ??????? 在 IE 中,HTML 對象的 ID 可以作為 document 的下屬對象變量名直接使用。在 MF 中不能。
    ??? (2)解決方法
    ??????? 用 getElementById("idName") 代替 idName 作為對象變量使用。

    5. 用idName字符串取得對象的問題
    ??? (1)現有問題
    ??????? 在IE中,利用 eval(idName) 可以取得 id 為 idName 的 HTML 對象,在MF 中不能。
    ??? (2)解決方法
    ??????? 用 getElementById(idName) 代替 eval(idName)。

    6. 變量名與某 HTML 對象 id 相同的問題
    ??? (1)現有問題
    ??????? 在 MF 中,因為對象 id 不作為 HTML 對象的名稱,所以可以使用與 HTML 對象 id 相同的變量名,IE 中不能。
    ??? (2)解決方法
    ??????? 在聲明變量時,一律加上 var ,以避免歧義,這樣在 IE 中亦可正常運行。
    ??????? 此外,最好不要取與 HTML 對象 id 相同的變量名,以減少錯誤。
    ??? (3)其它
    ??????? 參見 問題4

    7. event.x 與 event.y 問題
    ??? (1)現有問題
    ??????? 在IE 中,event 對象有 x, y 屬性,MF中沒有。
    ??? (2)解決方法
    ??????? 在MF中,與event.x 等效的是 event.pageX。但event.pageX IE中沒有。
    ??????? 故采用 event.clientX 代替 event.x。在IE 中也有這個變量。
    ??????? event.clientX 與 event.pageX 有微妙的差別(當整個頁面有滾動條的時候),不過大多數時候是等效的。

    ??????? 如果要完全一樣,可以稍麻煩些:
    ??????? mX = event.x ? event.x : event.pageX;
    ??????? 然后用 mX 代替 event.x
    ??? (3)其它
    ??????? event.layerX 在 IE 與 MF 中都有,具體意義有無差別尚未試驗。


    8. 關于frame
    ?? (1)現有問題
    ???????? 在 IE中 可以用window.testFrame取得該frame,mf中不行
    ?? (2)解決方法
    ???????? 在frame的使用方面mf和ie的最主要的區別是:
    如果在frame標簽中書寫了以下屬性:
    <frame src="xx.htm" id="frameId" name="frameName" />
    那么ie可以通過id或者name訪問這個frame對應的window對象
    而mf只可以通過name來訪問這個frame對應的window對象
    例如如果上述frame標簽寫在最上層的window里面的htm里面,那么可以這樣訪問
    ie: window.top.frameId或者window.top.frameName來訪問這個window對象
    mf: 只能這樣window.top.frameName來訪問這個window對象

    另外,在mf和ie中都可以使用window.top.document.getElementById("frameId")來訪問frame標簽
    并且可以通過window.top.document.getElementById("testFrame").src = 'xx.htm'來切換frame的內容
    也都可以通過window.top.frameName.location = 'xx.htm'來切換frame的內容
    關于frame和window的描述可以參見bbs的‘window與frame’文章
    以及/test/js/test_frame/目錄下面的測試
    ----adun 2004.12.09修改

    9. 在mf中,自己定義的屬性必須getAttribute()取得
    10.在mf中沒有? parentElement parement.children? 而用
    ?????????????? parentNode parentNode.childNodes
    ?? childNodes的下標的含義在IE和MF中不同,MF使用DOM規范,childNodes中會插入空白文本節點。
    ? 一般可以通過node.getElementsByTagName()來回避這個問題。
    ?? 當html中節點缺失時,IE和MF對parentNode的解釋不同,例如
    ?? <form>
    ?? <table>
    ??????? <input/>
    ?? </table>
    ?? </form>
    ?? MF中input.parentNode的值為form, 而IE中input.parentNode的值為空節點

    ? MF中節點沒有removeNode方法,必須使用如下方法 node.parentNode.removeChild(node)

    11.const 問題
    ? (1)現有問題:
    ???? 在 IE 中不能使用 const 關鍵字。如 const constVar = 32; 在IE中這是語法錯誤。
    ? (2)解決方法:
    ???? 不使用 const ,以 var 代替。

    12. body 對象
    ?? MF的body在body標簽沒有被瀏覽器完全讀入之前就存在,而IE則必須在body完全被讀入之后才存在

    13. url encoding
    在js中如果書寫url就直接寫&不要寫&amp;例如var url = 'xx.jsp?objectName=xx&amp;objectEvent=xxx';
    frm.action = url那么很有可能url不會被正常顯示以至于參數沒有正確的傳到服務器
    一般會服務器報錯參數沒有找到
    當然如果是在tpl中例外,因為tpl中符合xml規范,要求&書寫為&amp;
    一般MF無法識別js中的&amp;


    14. nodeName 和 tagName 問題
    ? (1)現有問題:
    ???? 在MF中,所有節點均有 nodeName 值,但 textNode 沒有 tagName 值。在 IE 中,nodeName 的使用好象
    ???? 有問題(具體情況沒有測試,但我的IE已經死了好幾次)。
    ? (2)解決方法:
    ???? 使用 tagName,但應檢測其是否為空。

    15. 元素屬性
    ?? IE下 input.type屬性為只讀,但是MF下可以修改


    16. document.getElementsByName() 和 document.all[name] 的問題
    ? (1)現有問題:
    ???? 在 IE 中,getElementsByName()、document.all[name] 均不能用來取得 div 元素(是否還有其它不能取的元素還不知道)。

    posted on 2007-01-06 23:45 大牙 閱讀(180) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 99精品一区二区免费视频| 日本亚洲欧美色视频在线播放 | 亚洲一级片内射网站在线观看| tom影院亚洲国产一区二区| 96免费精品视频在线观看| 亚洲天天做日日做天天欢毛片 | 一个人看的hd免费视频| 亚洲国产午夜中文字幕精品黄网站| 亚洲AV无码专区国产乱码不卡| 日本免费电影一区| 国产亚洲精品美女2020久久| 国产亚洲精品免费| caoporm碰最新免费公开视频| 在线亚洲人成电影网站色www| 国产无遮挡无码视频免费软件| 老司机亚洲精品影院无码| 香蕉97超级碰碰碰免费公| 在线观看日本亚洲一区| 免费成人在线观看| 中文字幕成人免费高清在线视频 | 日韩电影免费观看| 亚洲人成影院77777| 免费鲁丝片一级观看| 激情吃奶吻胸免费视频xxxx| 亚洲日韩小电影在线观看| 最近中文字幕免费完整| 亚洲风情亚Aⅴ在线发布| 国产乱辈通伦影片在线播放亚洲| 国产麻豆成人传媒免费观看| 亚洲精品中文字幕麻豆| 国产精品久久久久影院免费| 特级做A爰片毛片免费看无码| 亚洲欧洲国产精品久久| 免费在线黄色网址| 3344永久在线观看视频免费首页| 亚洲国产欧美日韩精品一区二区三区| 中文字幕亚洲综合久久男男| 国产男女爽爽爽爽爽免费视频 | 亚洲一区免费观看| 亚洲AV无码国产剧情| 亚洲AV无码久久|