網頁製作相容Mozilla必須知道的知識

來源:互聯網
上載者:User
網頁
IE Mozilla 說明
document.all(id) document.getElementById(id)
document.all document.getElementsByTagName("*")
document.body.clientHeight(clientWidth)根據HTML的DTD而定方能得到準確值。 window.innerHeight(innerWidth)根據HTML的DTD而定方能得到準確值。
opacity(aplha=20) MozOpacity="0.2" 可參看我的blog這篇文章
event.clientY(clientX) event.pageY(pageX)
event.keyCode event.which
event.srcElement event.target
window.external.AddFavorite('never-online.net', "never-online'website"); window.sidebar.addPanel('never-online.net', "never-online'website", "");
event.clientY(clientX) event.pageY(pageX)
(DHTML事件-滾輪事件)onmousewheel DOMMouseScroll 可參看我的blog這篇文章
window.showModalDialog window.open(url, "name", "modal=yes")
createPopup() xul
htc控制項 xbl綁定
filter濾鏡 只支援alpha(透明度,部分可通過clip來類比)
obj.setCapture() window.captureEvents(Event.eventType)
obj.attachEvent(type, listener) obj.addEventListener(type, listener, useCapture)
obj.detachEvent(type, listener) obj.removeEventListener(type, listener, useCapture)
指令碼預解釋執行
o={   foo: function(){     alert("never-online");   } }; with (o) {  bar();  function bar(){     alert("never-online");  }   foo(); }
上面的代碼成功輸出never-online
指令碼順序執行。o={   foo: function(){     alert("never-online");   } }; with (o) {  bar();  function bar(){     alert("never-online");  }   foo(); }
報錯bar未定義
解決方案有很多種,請參見我這裡的評論或者這篇文章
支援Webdings字型 不支援Webdings字型
insertAdjacentHTML, insertAdjacentElement方法 本身不支援,但可通過insertBefore或通過Range實現 可參見我這篇文章的代碼
不支援 讀寫器__defineSetter(Getter)__
不支援 支援對Element,EVENT等對象的prototype模式支援
不支援 對節點有nodeType常量屬性
new ActiveXObject("MSXML2.XMLHTTP")或更高版本的ProgId XMLHttpRequest對象
設定類似style.top=20這樣的高度時,可不使用單位 設定類似style.top=20+'px'這樣的高度時,必須使用單位,否則無效
CSS的類名,不區分大小寫(大小寫不敏感) CSS的類名,區分大小寫(大小寫敏感)如:.myCss和.mycss類名就是不相同的
冒泡事件event.cancelBubble=true event.stopPropagation()(需要傳遞event事件)
parentElement 預設不支援,但可以利用Mozilla特性類比
HTMLElement.prototype.__defineGetter__("parentElement", function () {if (this.parentNode == this.ownerDocument) return null;return this.parentNode;});
無空白節點 因為Mozilla下NodeType下定義有12種節點屬性,所以要去除空白的節點方能得到預期值
  var notspace = /\S/;  function cleanWhitespace(node) {    for (var x=0; x<node.childNodes.length; x++) {      var child = node.childNodes[x];      if ((child.nodeType == 3) && (!notspace.test(child.nodeValue))) {        node.removeChild(node.childNodes[x]); x--;      }; if(child.nodeType == 1) { cleanWhitespace(child); }    }  }
CSS padding寬度並不在offset位移座標之內 CSS padding寬度預設是在offset位移座標之內,可用-moz-box-sizing:border-box來設定即可基本與IE相同 可參見我這篇文章的代碼
js動態載入xslt檔案將xml轉化成HTML,IE可用xmldoc.transformNode(xslDocument)方法 Mozilla中相對麻煩一些,要經過幾道工序XSLTProcessor對象,transformToFragment或其它方法


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.