この Javascript コマンドを使用して、空の div をページ上の別の div の値に置き換えています。だから私はこれを私のhtmlに持っています:
<a href = "... some links that call the javascript ...">text link</a>
<div id="highlight">
</div>
<div id="1">
...some text
</div>
<div id="2">
... some text
</div>
スクリプトは
settext(newdiv) {
// set top of page highlight to appropriate text
var desc = document.getElementById('highlight');
if (desc.hasChildNodes()) desc.removeChild(desc.lastChild);
document.getElementById('highlight').appendChild(
document.getElementById(newdiv));
}
「ハイライト」divを別のdiv 1、2、3などに初めて置き換えると、スクリプトは正しく機能します。そのため、適切なハイパーリンク テキストをクリックすると、空白の div (id="highlight") が下の関連する div (例: div id="1") の内容で埋められます。
次に、新しいリンクをクリックすると、div id="highlight" の内容が消えて、新しい div テキストに置き換えられます。しかし、「ハイライト」divが空白になる前に削除されたdivを2回クリックします。以前にクリックされていないdivを使用した場合にのみ置き換えられます。
Firefox Web コンソールで Javascript エラーを確認すると、次のように表示されます。
「コンポーネントが失敗コードを返しました: 0X80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMHTMLDivElement.removeChild]」
何らかの理由で限界を超えているようです。どうすればこれを修正できますか?