是否有可能在javascript中创建一个在刷新页面时不会改变的变量?

时间:2011-08-28 02:39:36

标签: javascript html global-variables partial-page-refresh

我问这个question后:

我在想这个解决方案:

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

但遗憾的是,当 onload 属性 flag 总是 true 时,它不起作用<body> 标记。是否有可能(某种程度上)在javascript中创建一个在刷新页面时不会改变的变量?

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

4 个答案:

答案 0 :(得分:3)

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

  • 一个cookie
  • 在网址(查询字符串)
  • 页面集中的隐藏元素来自会话变量。

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:1)

您可以使用cookies,window.name和window.location.hash密钥来保存数据