0

我不知道如何将此函数的结果分配给全局变量。我知道这是一件非常基本的事情,但有人可以帮忙吗?

var pixel_code = null


function captureValue(){
  pixel_code = document.getElementById("baseText").value;
 return pixel_code;
}

pixel_code = captureValue();
4

4 回答 4

0

您在函数内外重复使用 pixel_code,这不是一个很好的模式,但您显示的代码应该可以按预期工作。你看到什么错误?您未显示的代码周围有哪些代码?所有这些可能都嵌套在另一个函数中吗?(感谢@JosephSilver 的点头。)

于 2013-01-20T05:20:14.530 回答
0

如果页面重新加载,您的变量将被重置为其初始状态。

于 2013-01-20T05:20:58.977 回答
0

请试试这个,

var pixel_code='';

function captureValue(){
  return document.getElementById("baseText").value;
}

function getValueBack()
{
    pixel_code = captureValue();
    //alert(pixel_code); /* <----- uncomment to test -----<< */
}
于 2013-01-20T05:48:43.120 回答
0

感谢您分享您尝试的 jsfiddle。我看到了担忧。captureValue() 函数是异步运行的,因此console.log()在定义它之后不久还没有值。我已经剥离并刺激了 jsfiddle 并提出了这个工作示例:

<html>
    <head>
    </head>
    <body>
    <h1>Welcome to the AdRoll SandBox</h1>

    <textarea id="baseText" style="width:400px;height:200px"></textarea><br />

    <input type="button" value="test" id="text_box_button" onclick="captureValue()"/>
    <input type="button" value="get" id="text_box_button2" onclick="getValue()"/>
    <script>
var pixel_code = null;

function captureValue(){
    pixel_code = document.getElementById("baseText").value;
    return false;
}

function getValue() {
    alert(pixel_code);
    return false;
}
    </script>
    </body>
</html>

我添加了第二个按钮。在文本框中键入,按“test”(设置值),然后按“get”以获取全局变量的值。

这是使用 jQuery 和闭包来避免全局变量的相同示例:

<html>
    <head>
    </head>
    <body>
    <h1>Welcome to the AdRoll SandBox</h1>

    <textarea id="baseText" style="width:400px;height:200px"></textarea><br />

    <input type="button" value="test" id="text_box_button" />
    <input type="button" value="get" id="text_box_button2" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script>
$(document).ready(function () {
    var pixel_code = null;

    $("#text_box_button").click(function (){
        pixel_code = document.getElementById("baseText").value;
        return false;
    });

    $("#text_box_button2").click(function () {
        alert(pixel_code);
        return false;
    });
});
    </script>
    </body>
</html>
于 2013-01-20T06:14:22.057 回答