Javascript 在闭包/匿名函数中重新加载页面?

标签 javascript jquery firefox reload

我正在使用 jQuery 来为一些 DOM 元素设置动画,但我希望页面在动画完成时重新加载,所以我尝试了以下方法:

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...]

发生什么事了?页面重新加载不能放在 function(){} 闭包中吗?

注意:浏览器:firefox 3.6.8。

受众浏览器:firefox 3+、chrome、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.reload() 不接受任何参数,与调用 JavaScript 函数不同,在调用浏览器 API 函数时,浏览器对可以/的参数数量非常严格。必须传递给函数。

编辑:感谢 OP 指出这一点,Firefox 至少允许将一个参数传递给 reload()。 (参见http://developer.mozilla.org/en/window.location)

关于Javascript 在闭包/匿名函数中重新加载页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3408440/

相关文章:

javascript - 当 JavaScript 更改绑定(bind)输入字段的值时自动更新 vue.js 数据

javascript - 如何将日期选择器中的值绑定(bind)到 angular2 模型?

javascript - 以统一方式更新数组选择值 onchange

jquery - 边框半径不适用于 chrome 中的相对定位图像

Jquery $.each 选择器

javascript - 更改事件上的 Firefox jQuery 未按预期工作

firefox - 在 Firefox 中获取扩展的附加 ID

javascript - 如何打开一个已经有 CSS 和 JavaScript 的新窗口?

javascript - 每 3 个月和 6 个月在 later.js 上重复一次,从特定日期开始说明

javascript - 带有反应路由器 v4/v5 的嵌套路由