1

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

4

1 回答 1

1

这不会是您正在寻找的答案,但我也遇到了同样的问题。升级到 jQuery 2.02 和 jQuery UI 1.10.4 并没有解决这个问题。最后我删除了 jquery.template.js。

于 2014-04-02T13:50:27.193 回答