JavaScript Code復制內容到剪貼板
- function replaceHtml(el, html) {
- var oldEl = typeof el === "string" ? document.getElementById(el) : el;
- /*@cc_on // 原始的 innerHTML 在 IE 中的性能好一點
- oldEl.innerHTML = html;
- return oldEl;
- @*/
- var newEl = oldEl.cloneNode(false);
- newEl.innerHTML = html;
- oldEl.parentNode.replaceChild(newEl, oldEl);
- /* 一旦我們從 DOM 上移除老的元素,則返回新的元素引用。*/
- return newEl;
- };
速度到底有多大提升,還得測試說話。作者提供了一個測試頁面:http://stevenlevithan.com/demo /replaceHtml.html
此方法大大提高了 innerHTML 在 Firefox 和 Safari 上的性能。replaceHtml() 在 Firefox 2.0.0.6 里 destroy 與 replace 的速度各快了 473 倍以及 50 倍。而在 Safari 3.0.3 beta 上則是 create 100 倍,replace 50 倍。
對于 Opera 也依然有性能提高,只是提高幅度沒有上面兩種瀏覽器驚人而已,
唯在 IE 中,則原始的 innerHTML 的方法更效率點。