【问题标题】:How to alert() when location.reload() if finishedlocation.reload() 完成后如何提醒()
【发布时间】:2015-10-16 16:19:39
【问题描述】:

我想使用 alert() 显示一个简单的弹出窗口,但是,只有在页面完全重新加载之后。

现在,弹出窗口显示并在一秒钟甚至更短的时间内消失,因为代码是同时执行的。

我的代码在ajax成功:

success : function( response ) {
    location.reload(); 
    alert(response);
}

如何让代码一个接一个地执行而不是同时执行?

【问题讨论】:

  • 基本上不能,location.reload 只是刷新页面。在...之前发出警报
  • 下面用户建议的 async: false 怎么样?
  • 哇,为什么这么多反对票?就因为做不到?
  • 其实location.reload()之后什么都做不了,为什么不提前提醒一下?
  • 我认为投反对票是因为您没有解释为什么不能使用明显的解决方案(在重新加载页面之前发出警报)。现在看来,您正试图强制采用对实际问题可能合理也可能不合理的解决方案。

标签: javascript jquery ajax


【解决方案1】:

如果您重新加载页面,基本上 JavaScript 将基本上“重置”,因此在 reload() 调用之后不会继续运行任何内容。您可能需要考虑在 localStorage 中放置一个变量,并在 document.ready 上发出警报。

这是一个例子。假设您想在用户单击特定按钮后刷新页面。

$(".myButton").on("click", function(){
     localStorage.setItem("buttonClicked", true); 
     location.reload(); 
}); 

$(document).ready(function(){
// This function will run on every page reload, but the alert will only 
// happen on if the buttonClicked variable in localStorage == true
    if(localStorage.getItem("buttonClicked");               
        alert("you clicked the button!") 
    }
}); 

【讨论】:

  • 终于!这很好用!但是我必须在警报之前添加localStorage.removeItem("buttonClicked");,否则它将在重新加载时显示警报,而不仅仅是一次。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-31
  • 1970-01-01
  • 2015-06-25
  • 1970-01-01
  • 2020-04-15
  • 1970-01-01
相关资源
最近更新 更多