Windows.history.back()+ location.reload()jquery

Jul*_*698 20 javascript ajax jquery

我的代码中存在问题.目的是完成一个简单的表单,然后单击一个提交按钮.它执行Ajax resquest以进入该方法.在ajax请求成功后,我使用windows.history.back()转到上一页这里我要刷新此页面,刷新由表单修改的值!你对此有所了解吗?

    $('#form_edit').submit(function (e)
    {
        e.preventDefault();
        $.ajax({
            url: $('#form_edit').attr('action'),
            type: 'POST',
            cache: false,
            data: $(this).serialize(),
            success: function (data) {
                if (data === true) {
                    alert("Modification réussie !");
                    window.history.back();
                    location.reload(); <= on success i want to refresh previous page
                }
                else {
                    alert("Modification échouée !");
                }
            },
            error: function ()
            {
                alert("Modification échouée !");
            }
        })
    })
Run Code Online (Sandbox Code Playgroud)

Sen*_*der 30

window.history.back(); 有时,javascript与ajax调用或与设计相关的挑战兼容是一个问题.

我会使用下面的函数返回刷新.

function GoBackWithRefresh(event) {
    if ('referrer' in document) {
        window.location = document.referrer;
        /* OR */
        //location.replace(document.referrer);
    } else {
        window.history.back();
    }
}
Run Code Online (Sandbox Code Playgroud)

在你的HTML中,使用:

<a href="#" onclick="GoBackWithRefresh();return false;">BACK</a>`
Run Code Online (Sandbox Code Playgroud)

要进行更多自定义,您可以使用history.js插件.


jby*_*007 11

在执行重新加载之前它已经回来了.

您最好更换:

window.history.back();
location.reload(); 
Run Code Online (Sandbox Code Playgroud)

有:

window.location.replace("pagehere.html");
Run Code Online (Sandbox Code Playgroud)

  • 无需额外编码的更好选择:window.location.replace(document.referrer); 在 chrome、safari、firefox、edge 上测试。 (2认同)

Chi*_*hta 11

试试这些......

选项1

window.location=document.referrer;
Run Code Online (Sandbox Code Playgroud)

选项2

window.location.reload(history.back());
Run Code Online (Sandbox Code Playgroud)

  • 我发现 window.location.reload(history.back()); 没有按预期工作 - 刷新到当前(不是上一个)页面 (3认同)

小智 8

你不能做window.history.back(); 和location.reload(); 在同一个功能.

window.history.back()打破了javascript流并重定向到上一页,从不处理location.reload().

在使用window.history.back()时,必须在您重定向到的页面上调用location.reload().

我会使用url重定向而不是history.back,它会为您提供重定向和刷新.


小智 7

我知道这篇文章很旧,但这可以提供帮助。

window.location.replace(document.referrer);
Run Code Online (Sandbox Code Playgroud)

  • 这是唯一对我来说可靠的事情。 (3认同)

Ina*_*man 5

这是正确的答案。它将刷新上一页。

window.location=document.referrer;
Run Code Online (Sandbox Code Playgroud)