【问题标题】:Uncaught TypeError: Cannot read property 'style' of null in this code未捕获的类型错误:无法在此代码中读取 null 的属性“样式”
【发布时间】:2019-09-26 11:30:08
【问题描述】:

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

错误:

未捕获的类型错误:无法读取 null 的属性“样式”

【问题讨论】:

标签: javascript


【解决方案1】:

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

将您的 script 移动到文档末尾,就在结束 &lt;/body&gt; 标记之前。


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

body {
    overflow: hidden;
}

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

<body style="overflow: hidden">

【讨论】:

  • 是的,谢谢,我知道,但我需要在 js 中做,我按照你说的或使用 'window.onload' 来解决这个问题
【解决方案2】:
<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 标签加载之前被执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 2018-02-12
    • 2014-10-03
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多