1

我想创建一个全局可访问的变量。当我们想改变时,它必须改变。更改后,它必须给出更改后的值。

var language ="english";

function getGlobalVar(varName) {
    if(varName == "language"){
        return language;
    }
}

function setGlobalVar(varName, value) {
    if(varName == "language"){
       language = value;
    }
}

当我们在其他页面中使用 getGlobalVar("language") 时,它必须给出改变后的值。

4

3 回答 3

5

全局变量只是附加到的变量window

window.language = 'english';

function getGlobalVar(bar) {
  return window[bar];
}

建议您创建自己的命名空间以避免以后出现问题:

window.MY = {};
MY.language = 'english';
于 2013-06-12T05:34:05.887 回答
2

当我们在其他页面使用 getGlobalVar("language") 时,它必须给出改变后的值

Web 使用无状态协议,即信息不会在页面之间持续存在。为了解决这个问题,您可以在客户端或服务器端解决方案(如会话)上使用 cookie。

尝试这个:

1.htm

<script type="text/javascript">
    window.val = "hello world";
    alert(window.val);
    window.location.href = "2.htm"
</script>

2.htm

  <script type="text/javascript">
    alert(window.val);
  </script>

饼干示例:

1.htm

<script type="text/javascript">
    var in_one_year = new Date();
    in_one_year.setFullYear(in_one_year.getFullYear() + 1);
    document.cookie = "language=English" +
                      ";expires=" + in_one_year.toGMTString();


    all_cookies = document.cookie
    alert(all_cookies);
    window.location.href = "2.htm"
</script>

2.htm

<script type="text/javascript">
    alert(document.cookie);
</script>
于 2013-06-12T05:37:52.360 回答
0

大多数支持本地存储的浏览器的另一种解决方案。

JStorage - 使用 JavaScript 在本地存储数据

于 2014-09-24T21:56:14.913 回答