在加载DOM和CSS而不是图像之后,如何启动javascript?

在加载DOM和CSS而不是图像之后,如何启动javascript?,javascript,onload,Javascript,Onload,加载DOM和CSS后,我需要启动一些javascript,但不需要启动图像。我相信那是在document.ready之后,但在window.onload之前。有人知道如何做到这一点吗 我想在document.ready之后加载CSS,通过迭代document.styleSheets来完成,但这感觉不是个好主意 更新:这个不寻常要求的原因是我需要预测图像将被渲染的大小,这是由css决定的。将javascript移到页面底部可以解决这个问题,但我希望我的脚本在情况并非如此时也能正常工作。您可以尝试使

加载DOM和CSS后,我需要启动一些javascript,但不需要启动图像。我相信那是在document.ready之后,但在window.onload之前。有人知道如何做到这一点吗

我想在document.ready之后加载CSS,通过迭代
document.styleSheets
来完成,但这感觉不是个好主意


更新:这个不寻常要求的原因是我需要预测图像将被渲染的大小,这是由css决定的。将javascript移到页面底部可以解决这个问题,但我希望我的脚本在情况并非如此时也能正常工作。

您可以尝试使用一个小图像并将处理程序添加到其onload事件中,请参阅 将带有此小图像的代码添加到document.ready

请详细说明您的用例是什么,以及为什么将代码放在document.ready事件处理程序上不适合您


另一个选项是将处理程序附加到每个样式标记的onload,并且每个处理程序增加一些计数器,如果计数器=样式标记计数,您将同时检查这些计数器。(您可以在添加事件处理程序的同时确定样式标记的计数)。
当计数器达到样式标记的数量时,您可以触发自定义事件,该事件可用于运行代码。但是,如果某些样式表由于某种原因无法加载,这将失败,因此我建议在上述逻辑失败的情况下添加一个回退来执行window.onload上的代码。

您可以尝试使用一个小图像并将处理程序添加到其onload事件中,请参阅 将带有此小图像的代码添加到document.ready

请详细说明您的用例是什么,以及为什么将代码放在document.ready事件处理程序上不适合您


另一个选项是将处理程序附加到每个样式标记的onload,并且每个处理程序增加一些计数器,如果计数器=样式标记计数,您将同时检查这些计数器。(您可以在添加事件处理程序的同时确定样式标记的计数)。 当计数器达到样式标记的数量时,您可以触发自定义事件,该事件可用于运行代码。但是,如果某些样式表由于某种原因无法加载,则此操作将失败,因此我建议在上述逻辑失败的情况下添加一个回退来执行window.onload上的代码。

您需要该事件,并在所有样式表之后链接一个外部脚本

从链接页面:

如果在
之后有一个
,则在加载样式表之前,页面将不会完成解析,
DOMContentLoaded
将不会启动

您希望事件以及在所有样式表之后链接的外部脚本

从链接页面:

如果在
之后有一个
,则在加载样式表之前,页面将不会完成解析,
DOMContentLoaded
将不会启动


DOMContentLoaded
是执行的第一件事。

但是

如果我在html中放置这样的图像。然后缓存该图像,然后在
DOMContentLoaded
之前执行图像onload

html

<img onload="console.log('imgLoaded');" src="http://placekitten.com/16/16">
演示

输出:

  • DOMContentLoaded
  • 幸灾乐祸

  • imgLoaded
    DOMContentLoaded
    是执行的第一件事。

    但是

    如果我在html中放置这样的图像。然后缓存该图像,然后在
    DOMContentLoaded
    之前执行图像onload

    html

    <img onload="console.log('imgLoaded');" src="http://placekitten.com/16/16">
    
    演示

    输出:

    • DOMContentLoaded
    • 幸灾乐祸

    • 我想知道这里的实际目标是什么?我怀疑你的方法是否正确。请检查@GovindSinghNagarkoti建议或使用我已经添加了一些关于我为什么这样做的更多信息<代码>$(文档)。ready不会加载css。您需要对图像的大小做什么?这里的实际目标是什么?我怀疑你的方法是否正确。请检查@GovindSinghNagarkoti建议或使用我已经添加了一些关于我为什么这样做的更多信息
      $(文档)。ready
      不加载css。您需要对图像的大小做什么?不起作用。有时先加载图像。尤其是在缓存图像的情况下。但请确保在dom之后首先执行DOMContentLoaded。谢谢,但这不是我想要的。上面写着“…不用等待样式表…完成加载”(我需要css)。@Zubin请仔细检查报价。在某些情况下,它确实会等待样式表。很好的观点@Razor。当脚本标记位于主体的底部(应该在的位置)时,它会工作。我希望无论脚本标签在哪里,它都能工作,但我会满足于此。干杯不起作用。有时先加载图像。尤其是在缓存图像的情况下。但请确保在dom之后首先执行DOMContentLoaded。谢谢,但这不是我想要的。上面写着“…不用等待样式表…完成加载”(我需要css)。@Zubin请仔细检查报价。在某些情况下,它确实会等待样式表。很好的观点@Razor。当脚本标记位于主体的底部(应该在的位置)时,它会工作。我希望无论脚本标签在哪里,它都能工作,但我会满足于此。干杯