在浏览器的多个实例中打开的同一网站的页面应使用javascript引用相同的变量

Pages of same website opened in multiple instance of browser should refer to same variable using javascript

本文关键字:javascript 变量 引用 浏览器 实例 网站      更新时间:2023-09-26
  1. 我有网站 www.xyz.com,它有 3 个页面 a、b 和 c。
  2. 我在IE浏览器实例1中打开一个页面(即 www.xyz.com/a(
  3. 我在新的IE窗口中打开页面b(即 www.xyz.com/b(
  4. 我在IE窗口实例3(即 www.xyz.com/c(的新选项卡中打开页面c

我需要一种使用 javascript ONLY的方法,通过它我将能够引用我为网站 xyz 定义的变量,并且所有三个页面 a、b 和 c 都将使用相同的变量。如果变量不存在,我应该能够使用 javascript 创建变量。

有几个选项,但最受支持的是 cookie。当您打开第一页时,您可以设置一个cookie,然后在网站上的所有后续页面上都可用。

现代浏览器(IE 8+,Chrome,Firefox等(的另一个选择是使用与cookie类似的localStorage,但数据保留在客户端,服务器端脚本永远无法访问。如果数据超过几个字节,则节省一点开销。

客户端的变量可以用不同的方式管理:

  1. 隐藏的表单域或<input type='hidden' id='variable-name' name='variable-name' value='some-value' />,其范围限定为一个页面,即一个 HTTP 请求和响应。因此,此选项不适用于您。
  2. 在 URL 中发送的参数(称为查询字符串(,其范围也限定为一个 URL,即一个 HTTP 请求和响应。因此,此选项也不适用。
  3. 使用服务器端会话对象,在许多页面之间共享一个变量,这是广泛且适用的,但当然不是在你的情况下,你想使用 JavaScript。
  4. 使用指定域和路径的所有页面之间共享的 Cookie。例如,为www.xyz.com和路径/设置的cookie可以从所有页面(如www.xyz.com/awww.xyz.com/bwww.xyz.com/c(访问。

因此,正如其他人所提到的,您唯一的解决方案是使用 cookie

可以使用

cookie 访问跨同一域的多个页面的 Javascript 变量:

有关更多详细信息,请参阅此处:http://www.w3schools.com/js/js_cookies.asp