我使用jQuery的动画一些DOM元素,但我希望页面动画完成时重新加载,所以我想这:JavaScript在关闭/匿名函数中重新加载页面?
function childDisablePopup()
{
$("#popup2",window.parent.document).animate({
width: "0px",
marginLeft: 0
}, "fast",
function()
{
$("#popup2",window.parent.document).animate({
height: "0px",
marginTop: 0
}, "fast",
function()
{
$("#backgroundPopup",window.parent.document).fadeOut("fast",
function()
{
$("#popup2",window.parent.document).remove();
window.location.reload(true);
});
});
});
}
然而,当动画完成的,而不是重新加载页面,我得到这个错误:
uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMLocation.reload]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: etc...]
这是怎么回事?页面重新加载不能放在函数中(){} closure?
注意:浏览器:firefox 3.6.8。
观众的浏览器:Firefox 3以上,铬,Safari 5以上
注:我也尝试过window.location.reload(true);
其返回同样的错误,我试图window.location.href=window.location.href
其返回:
uncaught exception: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMLocation.href]" nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)" location: "JS frame :: etc...]
'window.location.href'可能不会接受赋值。试试'window.location.replace(window.location.href);'?我开始倾向于最初的想法,那就是试图与父窗口的DOM进行交互......坦率地说,我很难过。 – 2010-08-04 18:44:31
我似乎无法重现异常。 (我也使用Firefox 3.6.8)除了我没有在选择器中使用'window.parent.document',所以它可以是你的脚本中的其他地方。 – casablanca 2010-08-04 19:04:57
好吧,这很奇怪,我甚至不能做'alert(window.location.href)'而不抛出相同的异常。 – 2010-08-04 22:31:34