开发者问题收集

将样式表添加到类后,Javascript 无法继续

2015-05-22
106

如果设备具有特殊宽度,我想显示一个 div 容器。我做了一个简单的 if 条件,它运行良好。

我想在代码中添加第二个函数,但该函数未被调用。尝试后,我发现代码在 document.getElementyById-Code 之后停止。

如果在 if 条件中在 getElementById 之前 调用 alert("Hello World"),则会调用它。如果在 if 条件中在 getElementById 之后 调用它,则不再调用它。

为什么进度卡在那里?

控制台输出: [错误] TypeError:null 不是对象(评估“document.getElementById("whitecontainer").style') setHeightandWidth (-Link removed-, line 402) onresize (-Link removed-, line 382)

但是对象不能为 null,因为样式更改确实有效,只是在执行调整大小后卡住了。

谢谢帮助!

function setHeightandWidth() {
    var body = document.body,
        html = document.documentElement;

    var height = (Math.max(body.scrollHeight, body.offsetHeight,
                           html.clientHeight, html.scrollHeight, html.offsetHeight) - 75 - 248);

    var width = document.body.clientWidth;

    if (width < 1199) {
        document.getElementById("whitecontainer").style.display = "none";

        alert("Hello World!");

    }

    if (width >= 1199) {
        width = 1140;
        document.getElementById("whitecontainer").style.display = "inherit";
    }

    var white_container = document.getElementById("whitecontainer");
    white_container.style.height = height + "px";
    white_container.style.width = width + "px";

}
2个回答

问题出在这行

document.getElementById("whitecontainer").style.display

javascript 无法找到 id“whitecontainer”,这就是为什么它会抛出空异常并且脚本中断

MyTwoCents
2015-05-22

警报不起作用可能意味着它之前的行导致了错误。

这些行

white_container.style.height = height + "px";
white_container.style.width = width + "px";

运行了吗?

我感觉每次使用文档时你的代码都会失败。XXXXXX

'whitecontainer' 可能不是真正的元素

steve
2015-05-22