需要只运行一次location.reload方法

时间:2013-10-14 13:54:14

标签: javascript jquery

如何在没有任何操作一次的情况下运行以下方法。我的意思是需要在我的页面加载时调用以下方法,因为我的插件之一没有F5没有正确绑定。所以我怎么能实现那个?

location.reload();

2 个答案:

答案 0 :(得分:3)

如果你真的想这样做,你可以在你想要的任何持久媒体中设置一个标志(如localStorage,cookies等):

if (sessionStorage.getItem('pluginBugFixedByReloading') !== 'fixed' {
  sessionStorage.setItem('pluginBugFixedByReloading', 'fixed');
  location.reload();
}

以下是有关某些存储空间的链接: https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage

在你这样做之前,你应该问问自己:为什么插件没有刷新就没有工作?在我做某事之前,我应该等待一些异步操作的结束吗?

我不知道你的情况的细节,但重新加载页面似乎是一个非常丑陋的黑客,可能会在意外情况下适得其反。

答案 1 :(得分:0)

确实有很多方法可以满足您的需求。例如有饼干。但是,在这个答案中我将解释更简单的方法。它使用iframe

解决方案取决于您的主页将是重新加载页面的iframe。假设我们必须使用pages.html:main.html和loader.html。

  

不要混淆,loader.html将成为我们访问的页面   来自浏览器

<!-- loader.html -->
<html>
  <head>
     <title>loader</title>
  </head>
  <body>
     <iframe src="main.html" name="toLoad"></iframe>
     <script>
       toLoad.location.reload()     
     </script>
  </body>
</html>

有些CSS会为您的loader.html及其iframe设置风格,使其覆盖良好。