未被捕获的TypeError:无法在此代码中读取null的属性“样式”

时间:2019-09-26 11:30:08

标签: javascript

我不知道为什么脚本无法识别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>

错误:

  

未捕获的TypeError:无法读取null的属性“样式”

2 个答案:

答案 0 :(得分:3)

document.body之所以为null,是因为您的代码会在遇到script标记后立即运行,并且尚未创建body

script移动到文档末尾,紧接在结束</body>标签之前。


也就是说,这里不需要JavaScript。您可以简单地添加CSS样式:

body {
    overflow: hidden;
}

...或开头style标签上的内联body属性:

<body style="overflow: hidden">

答案 1 :(得分:0)

<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>

您只需要在正文结束前放置脚本标签即可。现在,您的script标签在body标签加载之前就已执行。