javascript 未捕获的TypeError:无法读取null的属性(阅读“默认值”)

83qze16e  于 4个月前  发布在  Java
关注(0)|答案(1)|浏览(55)

我似乎得到了一个脚本错误,提到了 Bootstrap 警报和我自己的关闭警报标签。我有一个脚本,当创建脚本时,它会在2.5秒后关闭警报。它与用户操作相关联,例如,如果用户创建博客文章或删除评论,一个警报显示与用户任务,然后自动关闭标记。我似乎是得到一个未捕获的TypeError在控制台,不能找出原因。我只能推测,这是因为它正在寻找一个警报消息,这是不存在的?
script.js

// // Event listener for auto close message function using DOM Content Loaded
// // Javascript function for auto close messages

// document.addEventListener("DOMContentLoaded", alertTimeout);

document.addEventListener("DOMContentLoaded", (alertTimeoutalertTimeout) => {
  setTimeout(function () {
    let messages = document.getElementById("msg");
    let alert = new bootstrap.Alert(messages);

    alert.close();
  }, 2500);
});

字符串
index.html引导脚本

<!-- Bootstrap Scripts -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
    integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
    crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
    integrity="sha384-C6RzsynM9kWDrMNeT87bh95OGNyZPhcTNXj1NW7RuBCsyN/o0jlpcV8Qyq46cDfL"
    crossorigin="anonymous"></script>
</html>


Console Error code

Uncaught TypeError: Cannot read properties of null (reading 'defaultPrevented')
    at Q.close (alert.js:38:60)
    at script.js:11:11
close @ alert.js:38
(anonymous) @ script.js:11
setTimeout (async)
(anonymous) @ script.js:7


Alert.js
似乎是显示为错误的EVENT_CLOSE

// Public
  close() {
    const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE)

    if (closeEvent.defaultPrevented) {
      return
    }

    this._element.classList.remove(CLASS_NAME_SHOW)

    const isAnimated = this._element.classList.contains(CLASS_NAME_FADE)
    this._queueCallback(() => this._destroyElement(), this._element, isAnimated)
  }


我尝试添加一个文档准备脚本,并尝试了不同的方法来编写和加载脚本,但似乎是相同的结果一如既往。我也尝试使用旧版本的bootstrap js链接,它的作品,所以没有控制台错误,但后来我的模态和导航栏崩溃停止工作,所以我必须有正确版本的脚本。

o4hqfura

o4hqfura1#

使用下面的代码..

document.addEventListener("DOMContentLoaded", (alertTimeoutalertTimeout) => {
  setTimeout(function () {
    $("#msg").alert("close");
  }, 2500);
});

字符串

相关问题