Javascript - 检查框架是否为空

时间:2015-08-19 14:32:09

标签: javascript html typeerror

我试图检查框架“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/

1 个答案:

答案 0 :(得分:2)

嗯,该错误意味着它的含义:enull,因此e.offsetWidth会抛出异常。只需检查e

return !!(e && (e.offsetWidth != 0 || e.innerHTML != "\n"));

!!使得函数始终返回布尔truefalse结果,这是不必要的,但我喜欢用{{1}做到功能只是为了好。

为什么isFoo()为空?在这种情况下,这是因为代码没有找到"内容"或" content3"页面上的元素。