Javascript HTML';是否有跨浏览器标准加载事件;s";“对象”;标签?

Javascript HTML';是否有跨浏览器标准加载事件;s";“对象”;标签?,javascript,html,dom,Javascript,Html,Dom,我知道IE支持对象标记上的onreadystatechange属性,但这似乎不是一种标准方式,因此所有其他浏览器都不支持它 更新:为了澄清,我不是在寻找DOM加载事件,而是在寻找对象标记本身的加载事件(例如,将PDF文件嵌入页面的对象标记) 在某种程度上,我正在为对象标记寻找类似于img的onload事件/complete属性的东西。所以你想在加载[PDF]对象后触发事件吗? 如果是这样,这可能会帮助您: -----已编辑[19/10/2011]----- 如果将PDF加载到iframe中,它

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

更新:为了澄清,我不是在寻找DOM加载事件,而是在寻找
对象
标记本身的加载事件(例如,将PDF文件嵌入页面的
对象
标记)


在某种程度上,我正在为
对象
标记寻找类似于
img
onload
事件/
complete
属性的东西。

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

-----已编辑[19/10/2011]-----

如果将PDF加载到iframe中,它将正常工作

选中此项:

只有在PDF完全加载后,脚本才会发出警报。
(使用FF7+Win7进行测试)

-----已编辑[20/10/2011]-----

使用JQuery:

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

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

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

如果要尝试多次,请清除缓存。

或者将PDF更改为更大的格式,如下图所示(90页)。

我不确定仅使用对象属性就可以做到这一点

看看这个:

  • 你可以试着用它

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

  • 您可以尝试使用:

    在名为
    object.html
    的页面中导出您的

    在主页中包括:

    
    $(“#theObject”).load(“object.html”,
    函数(响应、状态、xhr){alert('Loaded:'+status);});
    

    请求完成时将显示该消息

在最新版本的Firefox、Chrome和Opera中,
属性运行良好(我刚刚测试过)


此外,document.createElement('object')中的表达式
'onload'在Chrome和Opera中的计算结果为
true
;当然,Firefox是一个例外,因为这样的事件支持检查在那里通常不起作用。kangax在

中描述了跨浏览器事件支持检测。你刚才让我的回答与那个编辑无关,有人吗?或者这真的到目前为止是不可能的吗?
complete
是一个事件吗?!这不是一个标志告诉你图像加载是否完成了吗?对不起,我指的是onload事件/complete属性。更新问题。谢谢你的提醒。你能找到解决方案吗?我知道IE中的OnReadyState更改。onload在最新版本的FF中似乎不起作用。另外,当我尝试时:var object=document.createElement('object');log(对象中的“onload”);我猜错了。用第四个链接(pdf)在chrome上测试了你的样本。事件按预期在iframe的DOMLoad上发生,而不是在您所说的PDF加载之后发生。@Hyangelo请再试一次。现在使用JQuery。请检查它。不适用于最新的Chrome(14.0.835)、Firefox(8.0)和IE9。在pdf开始加载之前,警报就出现了。警报在其他浏览器中根本没有显示。很抱歉,它对您不起作用,但请相信我,该示例的工作原理与预期的一样。也许其他人可以测试。不,这不能解决任何问题。对象加载数据(例如PDF或flash)。我需要的是数据完全加载时的事件。它不是跨浏览器的,我最初的嗅探测试确实显示您是正确的,但我还没有真正测试它。我担心这可能与RASG的答案有相同的结果。据我测试,Chrome不会在对象src更改和加载时触发onload事件。只是从2019年的未来开始:Chrome不再在
元素中加载某些内容时触发
onload
事件。