我使用设置全局变量的代码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正确添加此变量?
x
背景:上面的代码是我正在研究的项目中最少复制的示例,我们必须在AJAX响应期间执行javascript代码。eval大多数时候都能正常工作,但这会引起问题。
Eval在本地运行,您正在设置本地变量。
要设置全局变量,请删除var;
var
<script type="text/javascript"> $(function() { setTimeout(function() { eval('x = 1;'); alert(x); }, 0); }); </script>