我试图检查框架“ content1”和“ content3”是否为空,然后调整它们的大小。
但是大小每个循环都会改变
window.setInterval(function () {
check();
}, 50);
function check() {
var content1 = document.getElementsByName("content")[0].contentDocument.body;
var content3 = document.getElementsByName("content3")[0].contentDocument.body;
if (isEmpty(content3)) {
if (isEmpty(content1)) setProperties("0px, *, 0px");
else setProperties("35%, *, 0px");
} else setProperties("25%, 40%, 35%");
window.localStorage.clear();
}
function isEmpty(e) {
return (e.offsetWidth != 0);
}
function setProperties(value) {
document.getElementsByTagName("frameset")[1].cols = value;
}
https://jsfiddle.net/ecytve7w/8/
最佳答案
好吧,该错误意味着它说的是:e
是null
,因此e.offsetWidth
将引发异常。只需同时检查e
:
return !!(e && (e.offsetWidth != 0 || e.innerHTML != "\n"));
!!
使函数始终返回布尔true
或false
结果,这不是必需的,但是我很喜欢使用isFoo()
函数来做到这一点。为什么
e
为空?在这种情况下,这是因为代码没有在页面上找到“ content”或“ content3”元素。