使用eval()设置全局变量

我使用设置全局变量的代码eval无法正常工作。好像根本没有调用分配,但是没有脚本错误发生。

<script type="text/javascript">

$(function() {

setTimeout(function() {

eval('var x = 1;');

alert(x);

}, 0);

});

</script>

<div onclick="alert(x);">Click to see 'x'</div>

页面加载后,警报将显示我的期望值。它确认x =1。但是此后,我单击div并得到了一个x未定义的JavaScript错误。如何eval正确添加此变量?

背景:上面的代码是我正在研究的项目中最少复制的示例,我们必须在AJAX响应期间执行javascript代码。eval大多数时候都能正常工作,但这会引起问题。

回答:

Eval在本地运行,您正在设置本地变量。

要设置全局变量,请删除var

<script type="text/javascript">

$(function() {

setTimeout(function() {

eval('x = 1;');

alert(x);

}, 0);

});

</script>

以上是 使用eval()设置全局变量 的全部内容, 来源链接: utcz.com/qa/407221.html

回到顶部