2

次のコードは、Firefox と Chrome では正しく動作しますが、IE では頭が痛くなります。

var anotherDiv= document.getElementById("anotherDiv");
var destination = document.getElementById("mySourceDiv");    
destination.appendChild(anotherDiv);

Div 要素を取得して、別の div 内に配置しようとしています。「インターフェイスがサポートされていません」のようなエラー メッセージが (IE のデバッグ コンソールに) 表示され、appendChild 行が表示されます。私が見たのは、宛先変数の型が DOM 要素ではなくオブジェクトであるということです。

anotherDiv を mySourceDiv に追加するにはどうすればよいですか? 私はIE 8でこれを試しています。

4

2 に答える 2

0

おそらくimportNodeのようなものが必要になるでしょう。さまざまなクロスブラウザソリューションがあります。問題は、IEでは各ノードに対応するドキュメントオブジェクトがあり、いわゆるセキュリティでは、あるドキュメントから別のドキュメントへの移動がうまく機能しないことです。

つまり、基本的にはディープクローンを実行しますが、cloneNodeを使用する場合の違いは、cloneNodeが不要なドキュメントも設定することです。

これにより、正しい方向に進むことができます 。DOMimportNodeのIEサポート

于 2011-11-11T14:58:34.860 に答える
-2

ブラウザの非互換性を分類するように設計されたライブラリを使用することをお勧めします。個人的には、jQuery が非常に優れていることがわかりました。jQueryには追加機能があります。

于 2011-11-11T14:33:24.517 に答える