我使用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,并得到一个JavaScript错误,x
是未定义的。我如何使eval
正确添加这个变量?
背景:上面的代码是我正在从事的一个项目的最低限度再现示例,我们必须在AJAX响应期间执行JavaScript代码。大多数情况下,eval
正常工作,但这会造成问题。
为什么不使用'window.x = 1;'而不是? – zerkms