我有一个脚本,它在页面上的所有图片上附加了 onload 事件处理程序,但是由于它是 GreaseMonkey 脚本,所以它只能在图片加载完成后运行,因此有些图片可能已经加载完成,是否有一种方法可以在图片已经加载完成时触发 onload 事件?
我有一个脚本,它在页面上的所有图片上附加了 onload 事件处理程序,但是由于它是 GreaseMonkey 脚本,所以它只能在图片加载完成后运行,因此有些图片可能已经加载完成,是否有一种方法可以在图片已经加载完成时触发 onload 事件?
如果您不反对使用像jQuery这样的框架,那么有一个triggerHandler()函数可以满足您的需求。
您需要进行测试以检查图像是否已在脚本中加载(应该能够使用Google找到如何执行此操作的详细信息)- 如果没有加载,则只需附加onload事件处理程序;如果已经加载,您可以附加onload事件处理程序,然后使用jQuery的triggerHandler()函数触发它,或者执行将由onload事件处理程序执行的代码/函数-哪种方法最简单可能取决于您的onload事件处理程序执行的操作。
这是一个onload事件。我没想到这个事件会触发超过一次。
你可以将你的脚本附加到body / document的onload事件上,然后循环遍历所有的图像并附加你的事件处理程序。
我刚遇到了同样的问题,然后通过谷歌找到了这里。
我不想使用jQuery,所以我寻找了另一个解决方案。最终,在我的情况下,我只是在设置正确的图像“src”之前将图像的“src”属性更改为任何虚拟图片(例如1pix.png),以强制重新加载每个图像。当然,如果您有大型图像和/或经常加载图像,这不是一个好主意...但在我的情况下,我想这没问题,我只需要加载一次大实际图像(此外,我认为底层浏览器缓存机制避免了真正的图像重新加载...)。
希望它能帮助其他人!
PS:这似乎接近@Bugster的解决方法,但我真的没有理解它!