我使用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