JS window.onload 用法与文档

2023-12-14

window.onload从我的阅读看来,它可以与document.onload但我的经验表明这是不正确的。我继承了一个 JS 脚本,但我不知道如何纠正它。我希望 JS 在 DOM 加载后执行,而不是在所有资源加载后执行。我怎样才能做到这一点?

目前我有:

window.onload = initDropMenu;

我试过了:

 document.onload = initDropMenu;

这只会导致菜单无法加载。我还尝试从 JS 中完全删除该行,然后让 DOM 通过以下方式执行它:

<body onload="initDropMenu()">

这也导致没有菜单,并且控制台中没有错误。我的 JS 知识有限,我在这里缺少什么?


在窗口上加载事件:

load 事件在文档加载过程结束时触发。在 此时,文档中的所有对象都在 DOM 中,并且全部 图像、脚本、链接和子框架已完成加载.
[来源:开发者.mozilla.org]

    <script>
       window.onload = function(){ init(); };
    </script>

HTML 元素上的加载事件:

The load当资源和它的依赖 资源已完成加载。
[来源:开发者.mozilla.org]

    <!-- When the image is loaded completely -->
    <img onload="image_loaded()" src="w3javascript.gif">

    <!-- When the frame is loaded completely (including all resources) -->
    <iframe onload="frame_loaded()" src="about.html">

    <!-- When body loaded completely (including all resources, images and iframes) -->
    <body onload="init()">

许多论坛甚至本站的一些答案可能会误导您,但是loadbody 元素上的事件是不仅相当于 load窗口上的事件,它是完全相同的事件。下面的引用澄清了这一点。

由于历史原因,某些属性/属性<body> and <frameset>元素实际上在其父窗口上设置事件处理程序 目的。 (HTML 规范将这些命名为:onblur、onerror、onfocus、 加载、滚动。)
[来源:开发者.mozilla.org]

DOMContentLoaded 事件:

开发人员应该使用的是DOMContentLoaded文档上的事件。当 html 完全加载并解析时它会触发。

    document.addEventListener("DOMContentLoaded", function(event) {
        alert("Document is ready");
    });

当初始 HTML 文档已加载时,将触发 DOMContentLoaded 事件 已完全加载和解析,无需等待样式表, 图像和子帧以完成加载。非常不同的事件负载 应该仅用于检测完全加载的页面。这是一个令人难以置信的 使用 load 的常见错误是 DOMContentLoaded 会更多 合适,所以要谨慎。
[来源:开发者.mozilla.org]

也许这是关于该主题的唯一具有适当参考文献的答案

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS window.onload 用法与文档 的相关文章

  • 如何在同一页面上使用AJAX处理多个表单

    我有一个表单 当我单击 提交 时 它就被提交了 然后该表单隐藏 操作页面的结果显示在 div 中 classname dig 它工作正常 但是当我添加另一个表单时 它停止正常工作并且所有表单同时提交 我如何更改我的代码 done click
  • 如何测试 javascript 闭包内的函数

    这似乎是不可能的 也可能是 但我正在尝试更多的 TDD 但我总是在闭包方面碰壁 假设我有以下内容 function createSomething init function privateMethod param return init
  • 了解设置 JQuery 变量

    了解设置 JQuery 变量 最近 我通过在 StackOverflow 上遇到的另一个问题寻找帮助 了解到如何设置 JQuery 变量 如下所示 您可以通过简单地调用变量来创建输入字段 并且锚变量似乎也定义了样式 var clicked
  • Android 设备上的 PhoneGap 蓝牙插件

    我一直在尝试让 PhoneGap 工作的蓝牙插件 但我似乎不知道哪里出了问题 首先 我的测试设备是 Galaxy S3 GT 19305T 应用程序是使用PhoneGap CLI http docs phonegap com en 3 0
  • 从数据 URI 解码 QR 码

    我尝试从数据 uri 中解码二维码 var dataUri data image gif base64 R0lGODdh9gD2AIAAAAAAAP ywAAAAA9gD2AAAC decodeQrCode dataUri cb 我已经尝试
  • TypeError: props.render 不是一个函数(React hook 形式)

    我将方法作为我用react hook form制作的形式的道具传递 当从react hook form添加控制器时 它给了我 TypeError props render不是一个函数 我在网上找不到任何解决方案 因此感谢任何帮助 impor
  • 解析“流”JSON

    我在浏览器中有一个网格 我想通过 JSON 将数据行发送到网格 但浏览器应该在接收到 JSON 时不断解析它 并在解析时将行添加到网格中 换句话说 在接收到整个 JSON 对象后 不应将行全部添加到网格中 应该在接收到行时将其添加到网格中
  • 使用 JavaScript 使链接保持活动状态并在单击时显示悬停效果

    I am struggling to make this work I d like to make it where if O F is clicked the hover state stays active if another li
  • 使用 jQuery/JS 打开时使
    标签的内容具有动画效果

    我只想要 HTML5 的内容details标记为 滑行 动画打开 而不是仅仅弹出打开 立即出现 这可以用 jQuery Javascript 实现吗 Fiddle http jsfiddle net 9h4Hq HTML
  • Google App Engine:修改云运行环境

    我正在尝试部署一个使用自定义 Node js 服务器的 Next js 应用程序 我想将自定义构建变量注入应用程序 next config js const NODE ENV process env NODE ENV const envTy
  • 如何抑制窗口鼠标滚轮滚动...?

    我正在开发嵌入页面中的画布应用程序 我有它 因此您可以使用鼠标滚轮放大绘图 但不幸的是 这会滚动页面 因为它是文章的一部分 当我在 dom 元素上滚动鼠标滚轮时 是否可以阻止鼠标滚轮在窗口上滚动 附加鼠标滚轮 不是 Gecko DOMMou
  • 可以使用 jQuery 或 Javascript 将图片的特定部分用作链接吗?

    我有这个想法 将图片 而不是文本 的各个部分链接到不同的页面或网站 并且我想在不实际创建不同的照片并将它们彼此靠近的情况下完成 这样看起来就像是一张完整的图片 这里有人知道如何使用 JavaScript 的变体 例如 jQuery 或纯 J
  • Javascript正则表达式用于字母字符和空格? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要一个
  • 从未用 @flow 标记的导入文件中获取类型定义

    TL DR我怎么告诉flow从未声明的导入模块导入类型定义 flow 加长版 流接缝能够从不使用流语法的文件中派生类型 请参阅示例 示例文件 flow js if Math random lt 0 5 var y hello else va
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • 标签获取 href 值

    我有以下 html div class threeimages a img alt Australia src Images Services 20button tcm7 9688 gif a div class text h2 a hre
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • 如何更改此 jquery 插件的时区/时间戳?

    我正在使用这个名为 timeago 的插件 在这里找到 timeago yarp com 它工作得很好 只是它在似乎不同的时区运行 我住在美国东部 费城时区 当我将准确的 EST 时间放入 timeago 插件时 比如 2011 05 28
  • 如何仅在最后一个
  • 处给出透明六边形角度?
  • 我必须制作这样的菜单 替代文本 http shup com Shup 330421 1104422739 My Desktop png http shup com Shup 330421 1104422739 My Desktop png
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中

随机推荐

  • 尝试在 Ubuntu 上安装 OAuth 但出现错误

    我尝试在 Ubuntu Server 12 04 上安装 OAuth 但出现错误 我正在遵循本教程 但有些东西没有排列好 http sergiopvilar wordpress com 2013 05 18 how to install p
  • 具有Python投资组合优化方法的Finance Lib [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找 python 中的金融库 它提供了类似于 MATLAB 的方法门户锁 它用于优化投资组合 如果您了解线性代数 那么有一个任何库都应该支持
  • Python 中的 scipy.sparse dot 速度极慢

    以下代码在我的系统上甚至无法完成 import numpy as np from scipy import sparse p 100 n 50 X np random randn p n L sparse eye p p format cs
  • gcc 会跳过此检查有符号整数溢出吗?

    例如 给出以下代码 int f int n if n lt 0 return 0 n n 100 if n lt 0 return 0 return n 假设您传入一个非常接近整数溢出的数字 小于 100 编译器会生成给您负返回的代码吗 以
  • 模拟 WifiManager 以进行 Android 单元测试

    我正在尝试为几个依赖 WifiManager 和返回的 ScanResults 的类实现一些单元测试 我想做的是能够控制我收到的 ScanResults 以便测试各种不同的条件 不幸的是 成功模拟 WifiManager 对我来说相当困难
  • 从 pandas 数据帧写入 .csv 文件,并使用连续空格作为分隔符

    我想编写一个由四个空格而不是一个制表符分隔的文本文件 df to csv file sep s s s s 代替 df to csv file sep t 我尝试了正则表达式 df to csv file sep r s 4 哪个也不起作用
  • 检测 NSNumber 是否为零、nil 或 0

    我的核心数据中有一个变量 我想检测为零 空或其他没有好的值 例如 222 或 333 的情况 这应该是微不足道的 但我正在陷入 Objective C 的语法 以下代码是not在职的 if item id nil item id 0 do
  • Flot 条形图将条形与 X 轴标签对齐

    您好 我正在尝试绘制包含 31 天数据的条形图 然而 当我绘制它时 当我将条形图设置为时 每个数据的标签并不直接位于其条形图下方的中心 align center 第一个小节和最后一个小节被切成两半 这是jsfiddle http jsfid
  • 是否可以通过编辑 CSS 文件在 Bootstrap 4 中设置自定义断点?

    在我在这里完全被火焰击落之前 除了我的做法如下之外 我想不出任何其他方式来措辞或表达这个问题 我想在 Bootstrap 4 中为 1366px 和 1920px 设置 2 个额外的断点 因为 Bootstrap 的 xl 非常有限 只有
  • 在滚动条上覆盖 div

    我不想向下滚动页面来查看一堆 div 而是希望它们在滚动时叠加在同一个位置 一个叠在下一个上面 因此 您会向下滚动 但页面不会向下滚动 相反 下一个 div 将覆盖第一个 div 依此类推 不知道该怎么做 这是我所拥有的 UPDATE 这是
  • OpenGL 坐标系不在 -1 到 1

    我正在用 OpenGl 和 C 创建一个基本游戏 并希望当玩家到达屏幕边缘时他们无法再移动 我无法确定屏幕边缘在哪里 我知道Windows通常有一个介于1和 1之间的系统 但我的似乎更像是0 63到 0 63 玩家在屏幕上显示为一个方框 具
  • Ionic - 如何以编程方式设置项目的文本颜色?

    在 Ionic 3 中 如何以编程方式设置项目的文本颜色 例如 单击列表项将更改 切换 列表项的颜色
  • 在 R 脚本中将代码拆分为多行

    我想将 R 脚本中的一行拆分为多行 因为它太长 我怎么做 具体来说 我有一行诸如 setwd a very long path here that goes beyond 80 characters and then some more 是
  • IEqualityComparer 上不会调用 Equals 和 GetHashCode

    我正在比较两个List
  • 测试指针是否为空的最有效方法是什么?

    测试指针无效的两种方法之间哪种最有效 if pointer NULL or if pointer MyObject p Solution 1 if p Do something Solution 2 if p NULL Do somethi
  • 如何强制 cmake 在编译期间包含“-pthread”选项?

    我知道有类似的东西find package Threads 但它似乎没有什么区别 至少其本身 现在我正在使用SET CMAKE C FLAGS CMAKE C FLAGS pthread 但对我来说这看起来不是一个正确的解决方案 CMake
  • iPhone 上的谷歌地图异常

    我正在尝试将谷歌地图添加到我的iPhone应用程序中 我按照谷歌在此处所说的进行操作https developers google com maps documentation ios start getting the google ma
  • Excel 与 OneDrive 的全名属性

    如果我想在保存后使用打开的 Workbook 对象获取 Excel 文件的全名 但该文件已同步到 OneDrive 我会得到一个 https 地址 而不是本地地址 其他程序无法解释该地址 如何获取这样的文件的本地文件名 Example 将文
  • open_basedir 限制生效 文件不在允许的路径内

    Warning is dir function is dir open basedir restriction in effect File is not within the allowed path s home futbol data
  • JS window.onload 用法与文档

    window onload从我的阅读看来 它可以与document onload但我的经验表明这是不正确的 我继承了一个 JS 脚本 但我不知道如何纠正它 我希望 JS 在 DOM 加载后执行 而不是在所有资源加载后执行 我怎样才能做到这一