I like clean code so I do what I can to avoid unwanted JavaScript global variables. I initially thought that keys(window)
would give me window
property leaks but that didn't work because browsers returned different results, so I moved on to using an IFRAME
to compare default window property keys.
我喜欢干净的代码,所以我会尽力避免不必要JavaScript 全局变量 。 我最初以为keys(window)
会给我window
属性泄漏,但是由于浏览器返回不同的结果而无法正常工作,因此我继续使用IFRAME
比较默认窗口属性键。
When I first tried this method, I got a lame error about an IFRAME
element's contentWindow
property being null
. Ugh. It didn't take long to figure out why: you need to wait until the IFRAME
has loaded to get the contentWindow
:
当我第一次尝试此方法时,我遇到了一个contentWindow
错误,关于IFRAME
元素的contentWindow
属性为null
。 啊。 很快就知道了为什么:您需要等到IFRAME
加载后才能获得contentWindow
:
var iframe = document.createElement('iframe');
iframe.onload = function() {
// contentWindow is set!
};
iframe.src = 'about:blank';
document.body.appendChild(iframe);
Of course you'll want to add the onload
event before setting the src
. If you use the load
event to check for the contentWindow
property, you'll be in business!
当然,您需要在设置src
之前添加onload
事件。 如果您使用load
事件检查contentWindow
属性,那么您就可以做生意!