开发者问题收集

未捕获的类型错误:无法读取此代码中的 null 属性“style”

2019-09-26
111

我不知道为什么脚本无法识别 body

我的带有脚本的 HTML:

<html>
    <head>
        <script>
            document.body.style.overflow="hidden";
        </script>
    <body>
    <table width="2000px" height="1000px">
        <tr><td></td></tr>
        <tr><td></td></tr>
        <tr><td></td></tr>
        <tr><td></td></tr>
        <tr><td></td></tr>
        <tr><td></td></tr>
        <tr><td></td></tr>
        <tr><td></td></tr>
    </table>
</body>

错误:

Uncaught TypeError: Cannot read property 'style' of null

2个回答

document.bodynull ,因为您的代码在遇到 script 标记时立即运行,而 body 尚未创建。

将您的 script 移至文档末尾,紧邻结束 </body> 标记。


也就是说,这里不需要 JavaScript。您只需添加 CSS 样式:

body {
    overflow: hidden;
}

...或在开始 body 标记上添加内联 style 属性:

<body style="overflow: hidden">
T.J. Crowder
2019-09-26
<html>
    <head>
    <body>
    <table width="2000px" height="1000px">
        <tr><td></td></tr>
        <tr><td></td></tr>
        <tr><td></td></tr>
        <tr><td></td></tr>
        <tr><td></td></tr>
        <tr><td></td></tr>
        <tr><td></td></tr>
        <tr><td></td></tr>
    </table>
    <script>
        document.body.style.overflow="hidden";
    </script>
</body>

您只需将脚本标签放在正文结束之前。现在您的脚本标签在正文标签加载之前执行。

Faiz Sandhi
2019-09-26