javascript - 为什么我的 HTML onload 事件属性在脚本元素中被忽略?
问题描述
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Test!!!</h1>
<script onload="popup()">
function popup() {
console.log('popup function has been triggered!!!');
}
</script>
</body>
</html>
当上述页面加载时,我希望 onload 属性会导致函数弹出窗口触发,但没有任何反应。我哪里错了?
解决方案
在元素上,load
如果元素需要资源,则一旦加载该资源,就会触发该事件。例如,这适用于使用单独文件<script>
的图像和标签。内联 JavaScript 标记不需要下载资源,因此它们不会触发事件:因此,load
<script onload="popup()">
不调用popup
.
只需popup()
在纯脚本正文中运行:
<script>
function popup() {
console.log('popup function has been triggered!!!');
}
popup();
</script>
如果你想等待整个 DOM 被加载,使用DOMContentLoaded
监听器:
window.addEventListener('DOMContentLoaded', popup);
推荐阅读
- swift - 复制 ViewController 后 Storyboard Assistant Editor 不会自动切换
- sql - PIVOT/UNPIVOT 多于一列
- python-sphinx - 在 Sphinx 文本中强制换行
- android - Android 目标 SDK 从 26 移动到 28,错误:指定的子已经有父。您必须先在孩子的父母上调用 removeView()
- javascript - 在日视图中呈现角度 ui 日历上的数据
- python - 如何在一组图像上测试 Keras 模型?
- c# - 无法获取给定字符串中的字母/数字/特殊字符的数量
- python - 使用 Python 在一个图中绘制一系列股票数据
- azure - Microsoftapplicationinsight.dll 以这样的方式进行编辑,以便使用它离线将数据发布到云端
- c# - 循环遍历各种枚举的函数