【发布时间】:2013-03-01 08:53:03
【问题描述】:
我使用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 大部分时间都能正常工作,但这会导致问题。
【问题讨论】:
-
你为什么不改用
window.x = 1;?
标签: javascript ajax eval