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 用法与文档 的相关文章

  • 如何通过单击图像预览上的“x”从文件输入中删除图像?

    我目前有一个文件输入 一旦用户上传图像 就会显示图像预览 在图像预览上 有一个 x 可以从列表中删除图像预览 单击此 x 后 有什么方法可以从输入中的文件集中删除图像吗
  • 如何将udp发送到udp node.js服务器?

    我对此很陌生 所以我真的不知道我在做什么 但我已经设置了一个 node js udp 服务器 我想从客户端 来自网站 向它发送一个数据包 但我不知道如何在 javascript 中做到这一点 或者是否可能 我不是在研究如何从 Node js
  • 仅当表单已提交时才触发 jQuery 表单验证?

    不引人注目的验证基于这样的想法 don t进行表单验证 直到用户提交表单 一旦发生这种情况 如果表单上的某些内容无效 那么一旦用户更改了每个字段 就会立即验证它 我想做的是 不显眼地 触发表单元素的验证 也就是说 only如果用户已尝试提交
  • 访问sendBeacon发送的数据

    文档表明sendBeacon通过发送其数据HTTP POST request 但在 PHP 中 POST变量似乎是一个空数组 这是我的 JavaScript 代码 navigator sendBeacon beacon log php My
  • 如何在ASP.NET Webform中使用Jquery表单插件?

    我遇到了这个插件 http malsup com jquery form getting started http malsup com jquery form getting started 我想知道如何在 ASP NET WebForm
  • 非 DOM 对象上的 jQuery 自定义事件

    我最近阅读了一些代码 其功能如下 bob name Bob Smith rank 7 bob bind nameChanged function bob trigger nameChanged 这似乎有效 但我在 jQuery 文档或源代码
  • 消息“在 jest.setTimeout 指定的 5000 毫秒超时内未调用异步回调”

    我正在使用 Puppeteer 和 Jest 来运行一些前端测试 我的测试如下 describe Profile Tab Exists and Clickable settings user gt test Assert that you
  • 在网页上的文本框中键入内容时删除所有空格

    我如何在用户打字时即时删除输入到文本框中的空格 function var txt myTextbox var func function txt val txt val replace s g txt keyup func blur fun
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 如何在 Angular 中从父组件访问子组件?

    I have mat paginator在子组件a中 如下所示 子组件 html
  • Typeahead.js substringMatcher 函数说明

    我只是在做一些研究Typeahead js这是一个非常酷的图书馆 感谢文档 我已经成功地获得了一个基本的示例 该文档也非常好 但是我试图弄清楚以下代码块实际上在做什么 var substringMatcher function strs r
  • 如何将函数内的捕获错误传递给父级

    我有这几行代码示例 想知道下面的逻辑到底如何 try var response child console log why here catch err console log should show this err function c
  • 如何在 javascript 正则表达式中匹配平衡分隔符?

    我原以为这个问题是不可能的 据我所知 Javascript 的正则表达式既没有递归插值 也没有漂亮的 NET 平衡组功能 但问题就在那里 如问题 12 所示正则表达式 alf nu http regex alf nu 匹配平衡对 lt an
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch
  • 需要有关 React Js 的帮助

    我是 React Js 新手 我的代码无法正常工作 请看下面 这是我的脚本文件Main jsx 该文件由 React 编译 输出放置在 dist 文件夹下的 main js 文件中 var react require react react
  • 使用异步调用时如何从 javascript 更新元刷新?

    我有一个系统 它使用元刷新来注销页面 该系统会在空闲用户后进行清理 不用担心 服务器也会导致会话超时 我开始通过 ajax 进行一些操作 不是真正的 xml 但这不是重点 我可以运行从异步请求返回的javascript 所以我想知道是否可以
  • 如何在 gulp.src 中使用基本正则表达式?

    我正在尝试选择两个文件gulp src highcharts js and highcharts src js 当然 我知道我可以使用数组表达式显式添加这两个表达式 但出于学习目的 我尝试为它们编写一个表达式 我读过可以使用简单的正则表达式
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没

随机推荐

  • 尝试在 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 加载后执行 而不是在所有资源加载后执行 我怎样才能做到这一