列出网站使用的所有全局变量的方法是什么?任何浏览器javascript调试器都可以这样做吗?使用我的意思是READ,没有改变/添加.检测iframe,也会很好.
请注意:我需要获取网站"触及"的全局变量列表.并非所有这些或已添加的或已编辑的,在站点脚本中的任何位置使用的那些.
有没有办法在Javascript中获取列表或转储Javascript/jQuery脚本在页面上声明的所有全局变量的内容?我对数组特别感兴趣.如果我能得到阵列名称,那对我来说就足够了.看到它的价值是一个奖励.
有没有办法在javascript中找出所有用户定义的窗口属性和变量(全局变量)?
我尝试了,console.log(window)但列表是无止境的.
A for- in循环将遍历对象的所有可枚举属性,甚至是原型链中的那些属性.该函数hasOwnProperty可以过滤掉原型链中的可枚举属性.最后,该函数propertyIsEnumerable可以区分对象的可枚举属性.
因此,以下脚本不应该打印任何内容:
for(a in window)
if(window.hasOwnProperty(a) && !window.propertyIsEnumerable(a))
console.log(a);
Run Code Online (Sandbox Code Playgroud)
但是,在Chrome上,上面打印了很多属性名称.
为什么for- in循环并且propertyIsEnumerable在可枚举方面相互矛盾?
每当我在浏览器上看到一个网站时,就会运行一个javascript实例.我可以在控制台中声明一个全局变量(DevTools);
var a = 1234567890;
Run Code Online (Sandbox Code Playgroud)
此变量已在全局范围内声明,以便我可以像这样获取变量的值;
> a
1234567890
Run Code Online (Sandbox Code Playgroud)
但是,我也可以这样做;
> window.a
1234567890
Run Code Online (Sandbox Code Playgroud)
我是否正确理解window对象是包含浏览器中网站实例中所有全局变量的对象?如果是这样,窗口对象属于什么范围?这让我有点困惑;
> window
Window {top: Window, window: Window, location: Location, external:, ...}
> window.window
Window {top: Window, window: Window, location: Location, external:, ...}
> window.window.window
Window {top: Window, window: Window, location: Location, external:, ...}
Run Code Online (Sandbox Code Playgroud)
是window对象的最终全局对象,并确实有所谓的对象window引用回自己?
我的页面上有很多javascript变量:
var opts_???? = ...
var opts_???? = ...
var opts_???? = ...
Run Code Online (Sandbox Code Playgroud)
该????分配由内容管理系统中的随机数,所以我不知道该变量的全名.
我正在寻找任何未定义的.
在jQuery中是否有一种方法可以循环遍历所有以变量开头的变量,opts_以便我可以测试它们是否未定义?
如果有帮助,变量都是全局变量.
如果不是在jQuery中,我会满足于常规的javascript.