- PR -

javascriptでIEが落ちる。

1
投稿者投稿内容
でろんちょ
会議室デビュー日: 2003/05/29
投稿数: 3
投稿日時: 2006-12-25 15:23
はじめましてお世話になります。

javascriptの処理でIEが落ちる現象が出て困っています。


ソースは以下です。
コード:

[html部分]
<div id="A"></div>

<div id="fuga">"fuga"</div>

[script部分]
function copyNode(){
var elmt=document.getElementById("fuga").cloneNode(true);
document.getElementById("A").appendChild(elmt);
}



id="fuga"のエレメントが以下のような場合、クラッシュが発生します。
コード:

<div id="fuga">
<script type="text/javascript" src="hoge.js"></script>
</div>

[hoge.js]
document.write("hogehoge");



自環境(WinXP SP2)での確認では、firefox1.5、Opera9.0では問題なく動作しますが、
IE6のみcloneNodeの処理で落ちてしまいます。

対象のエレメントをコピーするのに何か良い回避方法がありますでしょうか。
ご助言よろしくお願いします。

*** 追記 ****************
ちなみに自環境はWindowsUpdateは余り行ってないので、実はもうBugfixされてたりするのかもと
ちょっと思ってます・・・


[ メッセージ編集済み 編集者: でろんちょ 編集日時 2006-12-25 15:54 ]
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-12-25 16:35
手元のIEは落ちませんでした。

cloneNodeの子コピーのとこを自前で書いたらどうですか。

>ちなみに自環境はWindowsUpdateは余り行ってないので、
そういうことをさらっと書かれても。

[ メッセージ編集済み 編集者: mio 編集日時 2006-12-25 16:35 ]
でろんちょ
会議室デビュー日: 2003/05/29
投稿数: 3
投稿日時: 2006-12-25 17:18
mio様 回答ありがとうございます。
Updateの件は書込み後に気付いてしまいました。以後気を付けたいと思います。

>cloneNodeの子コピーのとこを自前で書いたらどうですか。

createElementでscriptタグ生成、各プロパティを設定するという事ですね。
ありがとうございます。そちらの方法を使って試してみます。

あ、あと階層がある場合だと以下の様な処理も考えとかないといけないのですよね・・・
var childNodes = document.getElementById("fuga").childNodes;
for (var i = 0; i < childNodes.length; i++) {
/* 〜 */
}

むー、ちょっと考えて試してみます。
解決へのアドバイスありがとうございます。

ちょっと時間が掛かりますが、解決しましたらご報告させて頂きます。
1

スキルアップ/キャリアアップ(JOB@IT)