当前位置: 代码迷 >> JavaScript >> location.reload(真); 在IE11中不工作
  详细解决方案

location.reload(真); 在IE11中不工作

热度:118   发布时间:2023-06-13 12:22:15.0

我有一个脚本,当值> = 100时会重新加载页面,问题是location.reload(true);。 在IE11中不工作,我也尝试过window.location = self.location.href; 但是我遇到了同样的问题,在其他浏览器中效果很好。

$(function () {
if (value < 100) {
    var timer = setInterval(function () {
        $.ajax({
            type: "GET",
            url: $("#ancUrl").attr('href'),
            data: {},
            success: function (msg) {
                console.log("This is msg:" + msg);
                var msgInt = parseInt(msg);
                if (msgInt > value)
                    value = msgInt;
            },
            error: function (err) {
                console.log(err.responseText);
            },
            dataType: "json"
        });
        $("#progress-bar").width(value.toString() + "%");

        if (value >= 100) {
            clearInterval(timer);
            window.location = self.location.href;
        }
    }, 2000);
}

});

您似乎在任何地方都没有定义self ,因此在此处可能会出错。 除此之外,您还尝试将href的值分配为location的整个值-这意味着它是一个对象。 相反,请尝试:

window.location.href = window.location.href;

将if放置在成功函数中,ajax是异步的,if将立即执行,但是ajax完成后值将更改,因此代码可能永远不会到达if语句

$(function () {
if (value < 100) {
    var timer = setInterval(function () {
        $.ajax({
            type: "GET",
            url: $("#ancUrl").attr('href'),
            data: {},
            success: function (msg) {
                console.log("This is msg:" + msg);
                var msgInt = parseInt(msg);
                if (msgInt > value) {
                    value = msgInt;
                    $("#progress-bar").width(value.toString() + "%");
                    if (value >= 100) {
                       clearInterval(timer);
                       location.reload(true);
                     }
                }
            },
            error: function (err) {
                console.log(err.responseText);
            },
            dataType: "json"
        });



    }, 2000);
}
});

尝试将if语句移到成功回调中。

这样,您可以将间隔清除到同一堆栈中,然后重新加载页面。

$(function() {
  if (value < 100) {
    var timer = setInterval(function() {
      $.ajax({
        type: "GET",
        url: $("#ancUrl").attr('href'),
        data: {},
        success: function(msg) {
          console.log("This is msg:" + msg);
          var msgInt = parseInt(msg);
          if (msgInt > value)
            value = msgInt;
          $("#progress-bar").width(value.toString() + "%");
          if (value >= 100) {
            clearInterval(timer);
            window.location = self.location.href;
          }
        },
        error: function(err) {
          clearInterval(timer);
          console.log(err.responseText);
        },
        dataType: "json"
      });

    }, 2000);
  }
});
  相关解决方案