Javascript 在“上一步”按钮上,单击“执行函数”。

Javascript 在“上一步”按钮上,单击“执行函数”。,javascript,jquery,Javascript,Jquery,在document.ready事件中,我有一个函数,它收集具有属性“wordNum”的html控件,我发出一个AJAX请求,返回每个控件的一些描述,然后我用返回的描述设置这些控件及其innerhtml属性 问题是,如果用户单击“上一步”按钮,此功能当然不会执行,但我需要它 代码: $(document).ready(function () { Translate(); }); function Translate() { var list = new Array(); $

document.ready
事件中,我有一个函数,它收集具有属性“wordNum”的html控件,我发出一个AJAX请求,返回每个控件的一些描述,然后我用返回的描述设置这些控件及其
innerhtml
属性

问题是,如果用户单击“上一步”按钮,此功能当然不会执行,但我需要它

代码:

$(document).ready(function () {
    Translate();
});
function Translate() {
    var list = new Array();
    $("*[wordNum]").each(function () {
        var endRes = {
            ControllerName: this.id,
            WordNumber: this.getAttribute("wordNum")
        };
        list.push(endRes);
    });
    jQuery.ajax({
        url: ' @Url.Action("Translate")',
        contentType: "application/json",
        dataType: "json",
        data: {
            List: JSON.stringify(list)
        },
        traditional: true,
    }).done(function (data) {
        $.each(data, function (key, val) {
            $("*[wordNum]").each(function () {
                if (this.id == val.ControllerName) {
                    this.innerHTML = val.Description;
                }
            });
        });
    });
}

因此,我如何使“返回”按钮再次单击以执行此功能
Translate

您可以使用popstate事件触发事件:

$(window).on("popstate", function (event, state) {
    // Here comes the code to execute when the back button is pressed
}

您最好的解决方案是找到一种方法,让您的应用程序在不挂接back按钮事件的情况下工作。例如,如果用户关闭浏览器或直接转到新url,则这不是您可以依赖的事件。另外,如果你在api调用完成之前不能离开站点,那么这是一个非常糟糕的用户体验。我建议你另找一条路!我知道,但不幸的是没有办法!后退按钮表示用户不想继续处理某些内容。您不应该让它执行任何代码。这是一个不会消失的弹出窗口,并在刺激程度上发送垃圾邮件。您应该更改代码,使其不需要这样做。如果您提供更多详细信息,也许我们可以告诉您如何执行此操作?如果您需要在“后退”按钮上执行代码,您应该创建自己的“后退”按钮,并使其清晰可见和直观,以便用户使用它而不是浏览器的“后退”按钮。还可以尝试使用jQuery的
.unload()
检测用户何时离开您的页面,然后执行您的功能。