【问题标题】:Refresh page once after loading completed加载完成后刷新一次页面
【发布时间】:2013-12-25 11:45:23
【问题描述】:

我正在寻找一个简单的代码放入正文 (<body onload="...">),它只会自动重新加载页面一次
我发现了一些方法,比如在这两个主题中使用location.reload()stackoverflow1stackoverflow2
但它们没有帮助,因为它每次加载时都会自动加载页面(不是一次),我想要的是加载时只重新加载一次页面。

【问题讨论】:

  • 您可以使用sessionStoragelocalStorage
  • 这听起来像一个很奇怪的方式来解决你的问题告诉我们更多
  • 好吧,我在 ebay 上列出了一个项目,其中包含描述中的代码,并且在加载页面时,我的代码与 ebay 代码内联,解决此问题的唯一方法是刷新页面。我联系了ebay,他们告诉我这是缓存中的东西,你有没有更好的方法从缓存中解决这个问题?你想要我的列表链接吗?
  • 这个问题已经被问过很多次了:stackoverflow.com/questions/20213528/…
  • 在这里,很高兴接受一个答案。我在这里看到你终于用了我的答案:stackoverflow.com/questions/20453335/…我想达到 1000 rep,THX

标签: jquery


【解决方案1】:

使用 cookie 或哈希标签来存储页面状态。这是唯一可能的方法。 顺便说一句,你为什么需要这个?也许有更好的方法来实现这一点?

试试这个:

body onload='if(document.cookie.indexOf("mycookie") == -1){document.cookie="mycookie=1";location.reload();};'

【讨论】:

  • 好吧,我在 ebay 上列出了一个项目,其中包含描述中的代码,并且在加载页面时,我的代码与 ebay 代码内联,解决此问题的唯一方法是刷新页面。我联系了ebay,他们告诉我这是缓存中的东西,你有没有更好的方法从缓存中解决这个问题?你想要我的列表链接吗?
  • 你能回复一下吗?
  • 你能做示例页面吗?
  • 我的代码运行良好,但在刷新页面之前它在 ebay 上运行不佳,这是我的清单:ebay.com/itm/… 尝试从不同的浏览器(不仅仅是谷歌浏览器)打开页面并重新加载页面
  • 我对 ebay 不熟悉,抱歉。但是关于你的问题 - 只需设置一个 cookie。
【解决方案2】:

把这个放在你的onload

function checkReloadCount() {
   if(localStorage.getItem('isLoaded') !== 'yes') {
      localStorage.setItem('isLoaded', 'yes');
      //put reload script here
   }
} 

DEMO

【讨论】:

  • 它对我不起作用.. 我应该添加location.reload() 代替//put reload script here 吗?这就是我所做的
【解决方案3】:

将此sn-p 添加到您的页面的脚本标记中。

$(function(){ // jQuery dom ready event
    if (window.location.href.toLowerCase().indexOf("loaded") < 0) {
        window.location = window.location.href + '?loaded=1'
    }
});

【讨论】:

  • 代码运行良好,但它在 url 中添加了“?loaded=1”,我不能删除它吗?
  • 您能回复一下吗?我认为你的代码是最好的,没有额外的 "?loaded=1" 到 url
  • 您可以使用window.location.href = window.location.href.split('?loaded=1')[0]删除附加字符串
  • 不相关,但您可能需要稍等片刻才能让人们“请回复” - 两分钟的时间不足以回复 cmets。
  • 无限次重新加载:/
猜你喜欢
  • 2011-10-22
  • 2011-11-07
  • 2020-11-08
  • 1970-01-01
  • 2013-12-12
  • 1970-01-01
  • 2017-04-12
  • 1970-01-01
  • 2018-05-09
相关资源
最近更新 更多