HTML的"对象"标签是否存在跨浏览器标准的加载事件?

Hya*_*elo 24 html javascript dom

我知道IE支持标签onreadystatechange上的属性object,但这似乎不是标准方式,因此所有其他浏览器都不支持它.

更新:为了澄清,我不是在寻找DOM Load事件,我正在寻找object标签本身的加载事件(例如,object将PDF文件嵌入到页面中的标签).

在某种程度上,我正在寻找类似于标签imgonload事件/ complete属性的东西object.

dur*_*uri 5

<object onload>属性在Firefox,Chrome和Opera的最新版本中效果很好(我已经对其进行了测试)。

另外,该表达式在Chrome和Opera中的'onload' in document.createElement('object')计算结果为true;自然,Firefox是一个例外,因为此类事件支持检查通常在那里不起作用。kangax在http://perfectionkills.com/detecting-event-support-without-browser-sniffing/描述了跨浏览器事件支持的检测

  • 来自 2019 年的未来:当在 `&lt;object&gt;` 元素中加载某些内容时,Chrome 不再触发 `onload` 事件。 (3认同)
  • 据我测试,Chrome不会在对象src更改和加载时触发onload事件。 (2认同)

RAS*_*ASG 1

那么您想在加载 [PDF] 对象后触发一个事件吗?
如果是这样,这可能会帮助您:

http://www.webdeveloper.com/forum/showthread.php?t=160792

----- 已编辑 [2011 年 10 月 19 日] -----

如果您将 PDF 加载到 iframe 中,它将起作用。

检查一下: http: //sykari.net/stuff/iframe

该脚本仅在PDF 完全加载后才会发出警报。
(使用 FF7 + Win7 测试)。

----- 已编辑 [2011 年 10 月 20 日] -----

使用 JQuery: http: //jsfiddle.net/fcABz

为了确保它正常工作,我在 iframe 中添加了一个 36 页的 PDF 文件,这样你就可以看到进度条(至少在 FF7 中有一个,不确定 Chrome 是否有)上升,完全加载后,你将会看到一条警报。

为什么?因为JQuery 中的.load方法将等待 iframe 内的所有子元素加载完毕。

当元素和所有子元素完全加载时,加载事件将发送到该元素。此事件可以发送到与 URL 关联的任何元素:图像、脚本、框架、iframe和 window 对象。

如果您想多次尝试,请清除缓存。
或者将 PDF 更改为更大的 PDF,例如http://pubs.usgs.gov/tei/532/report.pdf(90页)。