|
試圖用以下表達式提取中括號“]”后面的內容,連接調用以下代碼在IE下正常,FireFox則總是會用單數行的內容替代雙數行的內容。
(/(/])([^ -}]*)/ig).exec(srcText);
newtext = "[部門]" + RegExp.$2;
后證實問題出在“ig”的“g”上,FireFox把RegExp當全局變量來處理,且沒有及時更新$2,這種問題實在莫名其妙。
二、移除Select的條目
IE支持select.options.remove(index),FireFox卻是select.remove(index),兼容的方法是select.options[i] = null;
三、showModalDialog
FireFox可以showModalDialog的了,不過如果showModalDialog出來的頁面套了個frame,frame的頁面取window.dialogArguments可以成功,FireFox不行,要用window.parent.dialogArguments來取。
四、childNodes
FF沒有children,要兼容用childNodes,但IE和FF解釋不一致,FF將空白文本、換行當成節點,為避免childNodes(index)取得的節點正確,HTML標識間不要有空格或換行 。
五、removeChild
FF中不能和node.removeNode(true),改為node.parentNode.removeChild(node)。
六、outerHTML
FF沒有node.outerHTML,在調用node.parentNode.innerHTML來特別處理,若只是添加事件響應或設屬性值,可直接element.onclick = function(){callxxx(x,y);}
七、script域問題
此問題原因不詳,FF用<script type="text/Javascript" src="inc/lib.js"></script>調用外部JS,在內部script中調用lib.js中的函數時,報告函數未定義,IE則無此問題。
JavaScript技術:編寫兼容IE和FireFox的腳本,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。