FirefoxのDOMから分割要素(モーダルウィンドウ)を削除しようとしています。
初めてモーダルウィンドウを削除したとき。すべてが正常に動作します。ウィンドウをもう一度開いて削除しようとすると、それは動作しません。
具体的には、モーダルウィンドウの親要素が見つからないというエラーメッセージが表示されます。
親要素はdocument.bodyで、parentNode.removeChild()とparentNode.replaceChild()を使用してみました。ただし、ChromeまたはInternetExplorer8では問題はありません。
DOMからノードを削除する適切な/防弾の方法は何ですか?
HTML:
<body>
<!--The modal window:!-->
<div id="modalwin"></div>
<!--An overlay division stacked behind the
modal window using CSS z-index: !-->
<div id="uiOverlay"></div>
<!--The listener:!-->
<a href="#" onClick='Delete(modalwin); Delete(uiOverlay); return false;' />
</body>
Javascript
Delete: function (elem) {
if (!elem) {
return false;
}
var blank = document.createTextNode(' ');
try {
var ref = elem.parentNode.replaceChild(blank, elem);
} catch (err) {
elem.style.display = "none";
}
// return true;
},
Firebugエラー
NotFoundエラー:ノードが見つかりませんでした(見つからないノードはdocument.body /モーダルウィンドウ分割の親です)