我有一塊JavaScript,我在其他頁面中使用得很好,但是在新頁面中拋出HierarchyRequestError。這讓我懷疑這是我頁面中的HTML問題。下面是代碼的一個大大的簡化版本(這仍然產生錯誤):jQuery UI對話框錯誤導致HierarchyRequestError按鈕
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: Node cannot be inserted at the specified point in the hierarchy
如果我刪除按鈕定義那麼錯誤就會消失。如果按鈕選項本身存在,則沒有區別,但如果我放入任何類型的單個按鈕處理程序,則會發生錯誤。我也嘗試了在選項中定義按鈕的兩種樣式。
我使用的是jQuery 1.7.2和jQuery UI 1.8.23,我試過升級到jQuery 1.8而沒有任何改變。
正如我上面所說,我強烈懷疑這是一個HTML結構問題,因爲完全相同的代碼文件可以在其他頁面工作,並且我會繼續查看,但是這足夠奇怪,我想查看是否這與其他人一起敲響了一個鐘聲。
更新:我經歷了我所有的其他js引用,發現包括jquery.template(https://bitbucket.org/stanlemon/jquery-templates/)是什麼導致它。嘗試更新到最新的,但是這是3歲,問題依然存在。將不得不將我現有的代碼移植到最新的模板庫。
馬修,你可以一起扔一個jsfiddle的html以及。我想刺穿它。 – zmanc