【问题标题】:Are global variables stored in browser after the processing is ended?处理结束后,全局变量是否存储在浏览器中?
【发布时间】:2012-10-02 16:07:16
【问题描述】:

请看下面的代码。
在我单击“PUT VAR”按钮后,警报总是向我显示值“putted!!”当我单击“SHOW VAR”按钮时。
这是否意味着我可以将全局变量用作页面上的隐藏值?

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript"> 
var test_var = "default";
$(function(){
    $("#show_var").on("click", function(){
        alert(test_var);
    });

    $("#put_var").on("click", function(){
        test_var="putted!!";
    });
});
</script>
</head>
<body>
<div id="demo">
<input type="button" value="SHOW VAR" style="width:100px" id="show_var" />
<input type="button" value="PUT VAR" style="width:100px" id="put_var" />
</div>
</body>
</html>

【问题讨论】:

    标签: javascript


    【解决方案1】:

    只要创建变量的上下文有效,就会存储变量。本质上

    var test_var = value
    

    任何闭包外都与

    相同
    window.test_var = value.
    

    window 对象在 unload 事件后被销毁,因此只要您保持在相同的文档上下文中,您的变量就会被存储。

    所以,是的,您可以将它们用作隐藏值,但您应该将&lt;input type="hidden"&gt; 用作表单值。

    【讨论】:

    • 我应该使用 因为变量冲突还是什么?
    • &lt;input type="hidden" value="myValue"&gt; 是一个表单元素。因此,如果您禁用 JavaScript,它不会被禁用。这仅对表单很重要。如果您想共享不参与任何形式的 JavaScript 变量,请随意在您的 JS 代码中声明它们。
    猜你喜欢
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 2016-12-16
    • 2014-08-25
    相关资源
    最近更新 更多