我有一段 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 年了,问题仍然存在。必须将我现有的代码移植到最新的模板库。