2

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

location.reload();
4

2 回答 2

3

如果你真的想这样做,你可以在任何你想要的持久性介质中设置一个标志(如 localStorage、cookie 等):

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

这是有关某些类型存储的链接: https ://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage

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

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

于 2013-10-14T14:04:30.457 回答
0

事实上,有很多方法可以得到你需要的东西。例如,有 cookie。但是,在这个答案中,我将解释更简单的方法。它正在使用一个iframe.

解决方案取决于您的主页将是重新加载页面的 iframe。假设我们要页面: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 设置样式以使其覆盖良好。

于 2013-10-14T14:21:34.493 回答