如何创建javascript全局可访问的静态变量?

时间:2013-06-12 05:29:59

标签: javascript static global-variables

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

var language ="english";

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

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

当我们在其他页面中使用getGlobalVar(“language”)时,它必须提供更改的值。

3 个答案:

答案 0 :(得分:4)

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

window.language = 'english';

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

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

window.MY = {};
MY.language = 'english';

答案 1 :(得分:2)

  

当我们在其他页面中使用getGlobalVar(“language”)时,它必须给出   改变了价值

网络使用无状态协议,即信息不会在页面之间持续存在。为了解决这个问题,您可以在客户端使用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>

cookie示例:

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>

答案 2 :(得分:0)

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

JStorage - store data locally with JavaScript