2

在我问这个之后question

我正在考虑这个解决方案:

  • 在javascript脚本中创建一个布尔标志并使其为
    • true表示使用浏览器刷新页面。
    • false表示使用按钮刷新页面。
  • 在按钮的onclick属性中,我将flag设置为false并调用window.location.reload()以刷新页面。
  • 在标签的onload属性中<body>,我检查标志是否为真切换到Home选项卡,否则切换到Page1包含<div>我要刷新其内容的标记的选项卡。之后,将flag设置为true .*

但不幸的是,它不起作用,并且在标签的onload属性方面flag总是如此。是否有可能(以某种方式)在javascript中创建一个在刷新页面时不会改变的变量?<body>

*我的页面由许多选项卡组成,第一个是 Home(使用浏览器刷新页面时应显示的位置),第二个是 Page1(其中包含<div>我要刷新其内容的标签以及应在何时显示的位置使用按钮刷新页面)

4

4 回答 4

3

不可以。但是,您可以通过多种方式存储变量的值。

  • 一块饼干
  • 在 url 中(查询字符串)
  • 来自会话变量的页面集上的隐藏元素。
于 2011-08-28T02:43:34.047 回答
3

浏览器是无状态的,这意味着每次页面加载时页面上的所有内容都会刷新。

有几种方法可以存储可以在请求之间访问的持久信息:

  • 将您想要的数据存储在 cookie 中,并在页面加载时读取
  • 向 URL 传递数据并在页面加载时读取当前 URL(包括您传递的数据)。例如:如果用户通过浏览器刷新,则将浏览器重定向到http://something.com/yourpage.html#flag=true;如果用户通过浏览器刷新,则将浏览器重定向到http://something.com/yourpage.html#flag=false点击按钮。在页面的 onload 上,只需读取当前 URL 并查看标志是什么。
  • 使用 cookie 创建会话并在服务器上存储数据(从技术上讲,这与第一个选项非常相似,只是您只需在客户端上存储一个令牌并将其传递给服务器以检索存储在那里的数据)
于 2011-08-28T21:02:47.880 回答
2

这听起来像是您可以在浏览器中使用 sessionStorage 或 localStorage 的情况,如果浏览器不支持,您可以回退到 cookie...

于 2011-08-28T02:44:44.033 回答
1

您可以使用 cookie、window.name 和 window.location.hash 键来持久化数据

于 2011-08-28T02:57:24.363 回答