【问题标题】:Reload an HTML page just once using JavaScript使用 JavaScript 重新加载 HTML 页面一次
【发布时间】:2011-09-03 20:42:04
【问题描述】:

如何只重新加载 HTML 基础网页一次?我在正文标签中使用history.go(0); 和函数onLoad,但我只想运行一次。请记住,我使用的是iframe,因此无法使用以下类型代码:

<script language=" JavaScript" ><!--
function MyReload()
{
window.location.reload();
}
//--></script>

<Body onLoad=" MyReload()" > 

上面的代码对我不起作用。

但是下面的代码运行良好,但问题是我只需要加载一次:

<BODY BGCOLOR=#FFFFFF background="../images/Index_04.jpg" onLoad="history.go(0)" >

注意:当用户点击主页链接时,我使用了两个 iframe,页面加载到 iframe 中,然后我想用当前 iframe 页面重新加载整个页面。

【问题讨论】:

  • 为什么是 BOLD TAGS,九十年代早已一去不复返了
  • 你每次加载都尝试重新加载,为什么要尝试以第一种方式重新加载,也许有更好的选择
  • 这没有任何意义,一旦页面加载,它将重新加载并成为一个新页面,因此它会再次重新加载(第一次加载)。我您正试图让浏览器显示最新的内容,这是通过cache control 完成的。
  • 您能解释一下为什么需要这样做,以便我们的建议更加贴近上下文吗?
  • @lbu @Quentin 阅读了我的问题,我需要它加载一次,因为当用户单击链接时我使用 iframe,它会加载一个 iframe,而不是我想用他最近打开的相同加载整个内容跨度>

标签: javascript html iframe dom-events


【解决方案1】:

我能想到的唯一方法是使用 cookie(或者如果您在正确的平台上使用会话)并在第一次重新加载时进行标记,变量也可能在这种情况下起作用,因为我们正在说话关于 IFRAME,但我从未尝试过这样的事情。

【讨论】:

    【解决方案2】:

    您可以在页面网址的末尾使用querystring(例如?r),并在重定向之前检查它,如果它存在,则重定向已经完成。

    if(window.location.href.substr(-2) !== "?r") {
      window.location = window.location.href + "?r";
    }
    

    免责声明:我同意其他人的观点,即您可能有更好的解决方案 - 并且永远不需要“只刷新一次”。

    使用说明

    在你的页面底部,就在&lt;/body&gt; 的正上方,你应该这样写:-

    <script type="text/javascript">
       if(window.location.href.substr(-2) !== "?r") {
          window.location = window.location.href + "?r";
        }
    </script>
    

    就是这样。

    【讨论】:

      【解决方案3】:
       <script type="text/javascript">
              $(document).ready(function(){
      
                  //Check if the current URL contains '#' 
                  if(document.URL.indexOf("#")==-1)
                  {
                      // Set the URL to whatever it was plus "#".
                      url = document.URL+"#";
                      location = "#";
      
                      //Reload the page
                      location.reload(true);
      
                  }
              });
          </script> 
      

      由于 if 条件,页面只会重新加载一次。希望这会有所帮助。

      【讨论】:

      • 这行得通 - 但它在 URL 上附加了一个 # - 并不理想。这也会影响浏览器的“返回”按钮,因为它会返回到非 URL 附加页面。如何在加载时刷新页面 - 而不附加 URL?
      【解决方案4】:

      这是另一个使用 localStorage 对我有用的解决方案。在这个解决方案中,我们不需要修改现有的 url。

      <script type='text/javascript'>
       (function()
       {
        if( window.localStorage ){
          if(!localStorage.getItem('firstReLoad')){
           localStorage['firstReLoad'] = true;
           window.location.reload();
          } else {
           localStorage.removeItem('firstReLoad');
          }
        }
       })();
      </script>
      

      【讨论】:

        猜你喜欢
        • 2019-01-05
        • 1970-01-01
        • 1970-01-01
        • 2013-04-21
        • 2023-03-06
        • 2011-03-28
        • 1970-01-01
        • 2011-04-12
        • 1970-01-01
        相关资源
        最近更新 更多