首页 / 知识
关于javascript:页面DOM加载后(但在window.onload之前)获得通知
2023-04-15 12:21:00

Getting notified when the page DOM has loaded (but before window.onload)我知道有一些方法可以在页面主体加载时得到通知(在加载所有图像和第3方资源之前,这会触发window.onload事件),但是对于每个浏览器来说都是不同的。 在所有浏览器上都有确定的方法吗? 到目前为止,我知道:
我希望能够不使用document.write或外部文件。 这可以简单地通过jQuery完成:
但是,我正在写一个JS库,不能指望jQuery总是在那里。 没有跨浏览器的方法可以检查DOM是否准备就绪-这就是为什么存在jQuery之类的库来抽象出讨厌的一点不兼容的原因。
Mozilla,Opera和现代WebKit支持 我找到了此页面,该页面显示了一个紧凑的独立解决方案。它似乎可以在每种浏览器上运行,并说明了如何: http://www.kryogenix.org/days/2007/09/26/shortloaded 使用类似jQuery的库将为您节省无数小时的浏览器不一致问题。 在这种情况下,您可以使用jQuery
如果您感到好奇,可以看一下资料来源,看看它是如何完成的,但是在如今的这个时代,我认为当图书馆作家为您完成所有痛苦的工作时,没有人应该重新发明这个轮子。 YUI使用三??个测试来执行此操作:对于Firefox和最近的WebKit,将触发一个DOMContentLoaded事件。对于较旧的Safari,document.readyState会一直监视,直到"加载"或"完成"为止。对于IE,HTML 标签已创建,并且调用了" doScroll()"方法,如果DOM未准备好,该方法应该会出错。 YAHOO.util.Event的源显示了特定于YUI的代码。在Event.js中搜索" doScroll"。 只需从jQuery中获取相关代码,John Resig就已经涵盖了jQuery中有关此问题的大部分基础。 您正在寻找的花哨的浏览器解决方案...不存在...(想象一大群人在说" aahhhh ...."的声音)。
DomContentLoaded只是您的最佳选择。对于IE-oldies,您仍然需要 我在javascript.info上找到了以下代码示例,可用于覆盖所有浏览器:
为什么不这样:
如果我理解正确,那么只要浏览器在页面中击中myInit,它就会立即执行,这是体内的最后一件事。 尽管执行时间取决于浏览器,但使用setTimeout可以很好地工作。如果您将超时时间设置为零,则在"解决"问题时浏览器将执行。 这样做的好处是您可以拥有许多控件,而不必担心链接onLoad事件。
等等 它们将在文档加载完成后全部运行,或者如果您在文档加载后进行设置,它们将在脚本运行完之后运行。
它们的运行顺序不确定,并且可以在浏览器之间更改。因此,例如,您不能指望 效果很好:
|
最新内容
相关内容
linux使用命令的方法?
linux使用命令的方法?,系统,信息,工具,标准,数据,命令,左下角,目录,文件夹,图标,linux的cd命令的使用方法1、cd ~:回到用户家目录。注:这得看你linux设备加载命令?
linux设备加载命令?,系统,设备,信息,电脑,第一,命令,文件,分区,磁盘,详细信息,linux设备加载信息文件在哪看1、在Linux系统中,以 文件 方式访问linux网卡加载命令行?
linux网卡加载命令行?,系统,地址,代码,网络,设备,电脑,名称,网卡,技术指标,信息,如何配置Linux网卡配置网卡地址:点击 网络(K) 按钮进行配置网linux命令刷新加载?
linux命令刷新加载?,系统,下来,工具,网上,命令,终端,环境变量,以下,文件,路径,如何在linux添加路径到PATH环境变量中1、设置JAVA_HOME:打开终端加载linux内核的命令?
加载linux内核的命令?,系统,信息,地址,电脑,发行,设备,简介,平台,发展,基础,linux开机启动会依次加载哪些脚本?一般的/etc/rc.d/init.d/目录下linux加载没有的命令?
linux加载没有的命令?,系统,服务,工具,信息,设备,标准,工作,命令,检测,代码,我的linux系统没有chkconfig命令怎么办?chkconfig命令属于readhat加载变量的linux命令?
加载变量的linux命令?,工具,系统,名称,环境变量,环境,命令,用户,文件,变量,方法,linux如何添加自定义变量1、方法一:用export命令,输入“exportlinux模块化加载命令?
linux模块化加载命令?,软件,系统,设备,代码,信息,环境,适当,资料,网上,电脑,如何编译加载linux驱动和内核模块将编写的源代码复制到 Linux 内linux命令加载模块?
linux命令加载模块?,设备,系统,工具,检测,信息,模块,内核,文件,命令,杂项,linux操作系统中,加载和删除内核模块的命令是什么?卸载模块 如果你linux图像查看器命令?
linux图像查看器命令?,工作,信息,设备,系统,图片,地址,文件,命令,目录,一致,Linux命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目录linux命令输入方法?
linux命令输入方法?,系统,电脑,密码,管理,地址,命令,网站,工具,首开,位置,linux终端输入~怎么弄中间在电脑上打开需要的Word文件进入。进入到文linux命令加载驱动?
linux命令加载驱动?,官网,电脑,系统,材料,网络,软件,设备,地址,下来,服务,openwrt安装linux网络驱动1、找到无线适配器,单击,出现驱动然后点击右