今、作っているjavascriptを直していたら突如IEだけで「操作は中断されました」とエラーの表示がでるようになった。firefoxでは出ないのになぜー!と叫びつついろいろ原因をほっていったらappendChildが悪さをしているらしい。
これは推測だがどうやらdivなんかの中で新たにappendChildを使ってbodyに新しいdivをインサートしようとすると怒られているらしい。まったくもうIEなんかやめてみんなfirefoxにしようぜと思いつつしばし解決策を考える
んで結局はIE固有のdocument.onreadystatechangeを使って解決した。
ご存知のようにdocument.onreadystatechangeはドキュメントの読み込みの状態を示していて読み終わるとステータスがcompliteになる。
だから
if (document.all) {
document.onreadystatechange = function () {
if (this.readyState == "complete") {
やりたい処理
}
}
} else {
やりたい処理、IE以外ではすぐ呼び出す
}
という感じで呼んで、読み込みが終わってからappendするようにすると、ほっ、無事動きました。
しかし、こんな現象こないだまでなかったような気がする。
知らない間になんかwindowsがいじったのか?なぞだ
0 件のコメント:
コメントを投稿