私は他のページで問題なく使用しているJavaScriptの一部を持っていますが、新しいページでHierarchyRequestErrorをスローしています。これは、私のページの HTML に問題があると思われます。コードを大幅に簡略化したバージョンを次に示します (それでもエラーが発生します)。
window.webframe.loginDialog = function () {
$("body").append('<div id="dialogSpace" />');
$("#dialogSpace").load("/login/index #loginContainer", function () {
$("#loginContainer").dialog({
buttons:
[
{
text: "Hi",
click: function()
{ alert('Hi');}
}
]
});
});
};
$('#lnkLogin').click(function () {
webframe.loginDialog();
return false;
});
このコードを実行すると、jQuery から次のエラーが発生します。
HierarchyRequestError: 階層内の指定されたポイントにノードを挿入できません
ボタンの定義を削除すると、エラーはなくなります。ボタン オプション自体が存在する場合は違いはありませんが、任意の種類の単一のボタン ハンドラーを配置すると、エラーが発生します。オプションでボタンを定義する両方のスタイルも試しました。
jQuery 1.7.2 と jQuery UI 1.8.23 を使用していますが、変更なしで jQuery 1.8 にアップグレードしようとしました。
上で述べたように、まったく同じコード ファイルが別のページで別の場所でも問題なく動作するため、これは HTML 構造の問題であると強く疑っています。他の誰とでも。
更新: 他の js 参照をすべて調べたところ、jquery.template ( https://bitbucket.org/stanlemon/jquery-templates/ ) を含めることが原因であることがわかりました。最新に更新しようとしましたが、それは 3 年前のものであり、問題は解決しません。既存のコードを最新のテンプレート ライブラリに移植する必要があります。