javascript - 获取 "window"对象进行评估,并列出所有变量? Javascript 评估内联 html

标签 javascript html ajax eval inline

Eval 通常不受欢迎,但似乎有必要。

目前,我有一个 ajax 调用,它检索具有内联 javascript 的 html 文件。然后它通过标记名获取脚本并对其进行评估。

这一切都工作正常,但我不知道所有的变量去了哪里。

例如,在正常情况下,所有内容都可以在窗口中找到:

var you = "buddy"
alert(window["you"]);
//Alerts : "buddy"

但是当我进行评估时,我不知道“窗口”的等价物是什么。我不确定所有变量最终去了哪里。

我想要的是某种方法来获取所有这些变量的列表,而不需要它们中的任何一个覆盖全局范围内存在的变量。

最佳答案

eval 将共享全局上下文 (window) 和任何局部变量。如果在全局范围内执行:

eval('var a=1; b=2');
console.log(window.a, window.b);
// => 1 2

new Function 将创建一个新的本地作用域:

new Function('var c=7; d=4')()
console.log(window.c, window.d);
// => undefined 4

您可以枚举全局范围内的任何变量作为window(或global)的属性。您不能以任何方式枚举局部变量。

关于javascript - 获取 "window"对象进行评估,并列出所有变量? Javascript 评估内联 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35423964/

相关文章:

python - 在 Windows 中使用 BeautifulSoup4、Chardet 和 Python 3.3 解析页面时出错

javascript - 单击时,将元素带到窗口顶部(带偏移)

javascript - jQuery ajax 加载或更新后,我丢失了鼠标悬停事件

javascript - 如何使用 html 和 javascript 获取和传递链接参数

python - Django刷新页面

javascript - 为什么Android点击区域的半径比touchstart更宽?我怎样才能使它一致?

javascript - yyyy-mm-dd 的正则表达式

javascript - 使用 JavaScript 预加载的淡入淡出图像

javascript - 更改 IE 11 默认警报

javascript - 无法读取属性 'getBounds' 。使用 addListenerOnce