是否存在HTML“object”标记的跨浏览器标准onload事件?

时间:2011-10-13 15:14:46

标签: javascript html dom

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

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

在某种程度上,我正在为img标记寻找与onload的{​​{1}}事件/ complete属性类似的内容。

3 个答案:

答案 0 :(得分:5)

<object onload>属性适用于最新版本的Firefox,Chrome和Opera(我刚刚测试过它)。

此外,表达式'onload' in document.createElement('object')在Chrome和Opera中评估为true;很自然,Firefox是一个例外,因为这种事件支持检查通常不起作用。 kangax描述了http://perfectionkills.com/detecting-event-support-without-browser-sniffing/

上的跨浏览器事件支持检测

答案 1 :(得分:1)

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

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

----- EDITED [19/10/2011] -----

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

请检查:http://sykari.net/stuff/iframe

在完全加载PDF后,脚本将仅在后发出警报 (经FF7 + Win7测试)。

----- EDITED [20/10/2011] -----

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

为了确保它正常工作,我已经向iframe添加了一个36页的PDF文件,因此您可以观看进度条(至少在FF7中有一个,不确定Chrome),并且在它完全显示之后加载后,您将看到警报。

为什么呢?因为JQuery中的 .load 方法将等到iframe中的所有子元素都被加载。

  

它和所有子元素已完全加载时,加载事件将发送到元素。此事件可以发送到与URL关联的任何元素:图像,脚本,框架, iframes 和窗口对象。

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

答案 2 :(得分:-1)

我不确定你只能使用对象属性来做到这一点。

看看这个:

  • 您可以使用onreadystatechange

    尝试一下

    数据加载良好时,readyState==4xmlhttp.status==200

  • 您可以尝试使用jQuery load function

    在名为<object/>的页面中导出object.html

    在您的主页中包含:

    <div id="theObject"></div> <script> $("#theObject").load("object.html", function(response, status, xhr) { alert('Loaded : '+status);}); </script>

    请求完成时将显示该消息。