如何在一个窗口中为不同的页面设置一次变量

时间:2013-11-24 17:25:08

标签: javascript

我想为当前窗口设置布尔标志。我将在此窗口的所有页面上使用此标志。 LocalStorage坏主意,因为它为所有窗口永久设置了标志。我该怎么办?

4 个答案:

答案 0 :(得分:1)

与jQuery一样,jQuery附加到窗口并作为可从任何窗口访问的全局变量 你可以做点什么......

window.my_flag = false

答案 1 :(得分:1)

您可以使用窗口名称window.name来存储信息。在创建窗口之后,此方法通常用于修改窗口的名称。只有使用相同的窗口/标签时,它才有效。

了解更多信息:https://developer.mozilla.org/en-US/docs/Web/API/Window.name

答案 2 :(得分:0)

使用PHP或JSP会话,然后使用AJAX在任何页面中检索您的值。

您应首先拥有ajax请求来初始化您的值。然后你应该使用AJAX相应地设置/更新/读取你的布尔值。

如果您需要详细信息,请与我们联系。

答案 3 :(得分:0)

使用cookies:

设置cookie:

function setCookie(c_name,value,exdays)
{
  var exdate=new Date();
  exdate.setDate(exdate.getDate() + exdays);
  var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
  document.cookie=c_name + "=" + c_value;
}

获取cookie:

function getCookie(c_name)
{
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1)
  {
  c_start = c_value.indexOf(c_name + "=");
  }
if (c_start == -1)
  {
  c_value = null;
  }
else
  {
  c_start = c_value.indexOf("=", c_start) + 1;
  var c_end = c_value.indexOf(";", c_start);
  if (c_end == -1)
  {
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start,c_end));
}
return c_value;
}

Reference