【问题标题】:Reload and display message重新加载并显示消息
【发布时间】:2009-10-08 23:41:09
【问题描述】:

我想在从表中删除一行后重新加载页面,然后显示消息。下面是 JavaScript 代码:

if(action == 'delete'){
  window.location.reload(true);
  //tried to set timeout here, no luck :(
  document.getElementById('messageSpan').innerHTML = "The value has been deleted."; 
}

好像是在messageSpan的内容改变后才执行reload函数,所以reload函数抹去了messageSpan的内容。

【问题讨论】:

  • 我不明白 - 你的意思是你希望 messageSpan 在页面重新加载后仍然消失?
  • 我想在页面重新加载后显示 messageSpan。

标签: javascript reload


【解决方案1】:

如果您尝试在定义的时间段内显示消息并然后重新加载页面,您可以使用setTimeout 函数:

if(action == 'delete'){
  document.getElementById('messageSpan').innerHTML = "The value has been deleted."; 

  setTimeout(function () { // wait 3 seconds and reload
    window.location.reload(true);
  }, 3000);
}

请注意,您的消息将仅在这三秒内可见,当页面重新加载时它会消失。

【讨论】:

    【解决方案2】:

    不要使用重载。使用查询字符串将一个值传回你的页面,告诉它删除操作是否成功

    即self.location.href = "yourPage.html?result=success"

    然后您的页面应检查结果查询字符串项并显示相应的消息。

    但是看看 jquery 和 ajax,你可能根本不需要回发来刷新你的网格

    【讨论】:

      【解决方案3】:

      刷新页面后显示消息可以通过以下方式完成:

      HTML(插入 BODY 标签的任何位置):

      <div id="dvLoading"></div>
      

      CSS

      #dvLoading {
          background:url(../theImages/loader.gif) no-repeat center center;
          height: 100px;
          width: 100px;
          position: fixed;
          left: 50%;
          top: 50%;
          margin: -25px 0 0 -25px;
          z-index: 9999999999999999;
      }
      

      JQuery

      $(window).load(function() {
          $('#dvLoading').fadeOut(2000);
      });
      

      加载器图片:

      对我来说就像一个魅力。希望对您的问题有所帮助。

      【讨论】:

        【解决方案4】:

        重新加载页面将破坏页面的状态,因此用户将永远不会看到消息 HTML,因为它会在页面重新加载时重置。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-01-14
          • 1970-01-01
          • 2015-01-29
          • 2020-10-08
          • 1970-01-01
          • 1970-01-01
          • 2016-04-28
          相关资源
          最近更新 更多