DOM: document.importNode

とりあえず、MSIEdocument.importNodeを使えるように書いてみたスクリプトを転載。まだ未完成なので、完成までつきあってもらえるとうれしいかも。

if (document.importNode == undefined) {
  /* For pre-level-2 DOM: */
  document.importNode = function (node, deep) {
    if (node == null)
      return null;

    var value;
    switch (node.nodeType) {
    case 1:                     /* Node.ELEMENT_NODE */
      value = document.createElement (node.nodeName);
      /** @todo attributes */

      if (deep) {
        for (var i = node.firstChild; i != null; i = i.nextSibling)
          value.appendChild (document.importNode (i, true));
      }
      break;
    case 3:                     /* Node.TEXT_NODE */
      value = document.createTextNode (node.nodeValue);
      break;
    case 4:                     /* Node.CDATA_SECTION_NODE */
      value = document.createCDATASection (node.nodeValue);
      break;
    case 8:                     /* Node.COMMENT_NODE */
      value = document.createComment (node.nodeValue);
      break;
    default:
      window.alert ("Unexpected Node");
      value = document.createComment ("Unexpected Node");
      break;
    };
    return value;
  }
}

リンク: テストステージ.