我怎样才能在没有任何操作的情况下运行下面的方法一次。我的意思是需要在我的页面加载时调用下面的方法,因为我的一个插件在没有 F5 的情况下无法正确绑定。那么我该如何实现呢?
location.reload();
我怎样才能在没有任何操作的情况下运行下面的方法一次。我的意思是需要在我的页面加载时调用下面的方法,因为我的一个插件在没有 F5 的情况下无法正确绑定。那么我该如何实现呢?
location.reload();
如果你真的想这样做,你可以在任何你想要的持久性介质中设置一个标志(如 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
在你这样做之前,你应该问自己:为什么没有刷新插件就不能工作?在我做某事之前我应该等待一些异步操作的结束吗?
我不知道您的情况的详细信息,但是重新加载页面似乎是一个非常丑陋的黑客行为,在意外情况下可能会适得其反。
事实上,有很多方法可以得到你需要的东西。例如,有 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 设置样式以使其覆盖良好。