Spa*_*Dog 36 javascript jquery
有没有办法在Javascript中获取列表或转储Javascript/jQuery脚本在页面上声明的所有全局变量的内容?我对数组特别感兴趣.如果我能得到阵列名称,那对我来说就足够了.看到它的价值是一个奖励.
Rig*_*red 44
Object.keys( window );
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个包含对象的所有可枚举属性的数组window(它们是全局变量).
对于旧版浏览器,请包含MDN的兼容性修补程序.
要查看它的值,那么显然你只需要一个典型的枚举器,比如for-in.
您应该注意,我提到这些方法只会为您提供可枚举的属性.通常那些将是环境不内置的那些.
可以在ES5支持的浏览器中添加不可枚举的属性.这些将不包括在内Object.keys或使用for-in声明时.
正如@Raynos所说,你可以 Object.getOwnPropertyNames( window )使用非枚举.我不知道.谢谢@Raynos!
因此,要查看包含枚举的值,您需要执行以下操作:
var keys = Object.getOwnPropertyNames( window ),
value;
for( var i = 0; i < keys.length; ++i ) {
value = window[ keys[ i ] ];
console.log( value );
}
Run Code Online (Sandbox Code Playgroud)
以下函数仅转储已添加到 window 对象的全局变量:
(function(){
//noprotect <- this comment prevents jsbin interference
var windowProps = function() {
// debugger;
var result = {};
for (var key in window) {
if (Object.prototype.hasOwnProperty.call(window, key)) {
if ((key|0) !== parseInt(key,10)) {
result[key] = 1;
}
}
}
window.usedVars = result;
};
var iframe = document.createElement('iframe');
iframe.style.display = 'none';
iframe.src = 'about:blank';
document.body.appendChild(iframe);
var fwin = iframe.contentWindow;
var fdoc = fwin.document;
fdoc.open('text/html','replace');
fdoc.write('<!DOCTYPE html><body><script>window.onload = ' + windowProps.toString() + '<\u002Fscript>');
fdoc.close();
var button = document.createElement('input');
button.type = 'button';
button.value = 'go';
document.body.appendChild(button);
button.onclick = function() {
var clean = fwin.usedVars;
windowProps();
var dirty = window.usedVars;
for (var key in clean) {
delete dirty[key];
}
for (var variable in dirty) {
var div = document.createElement('div');
div.textContent = variable;
document.body.appendChild(div);
}
document.body.removeChild(button);
document.body.removeChild(iframe);
};
})();
Run Code Online (Sandbox Code Playgroud)
它的工作原理是使用 iframe 获取全局窗口变量的干净列表,然后将其与当前窗口中的全局变量列表进行比较。它使用按钮是因为 iframe 异步运行。该代码使用全局变量,因为这使代码更易于理解。
您可以在此处或此处看到它的工作原理,但请注意,这些示例显示了 jsbin 本身“泄漏”的许多全局变量(根据您使用的链接而有所不同)。
| 归档时间: |
|
| 查看次数: |
22816 次 |
| 最近记录: |