没有为对象元素调用onload

时间:2011-07-01 15:38:40

标签: javascript html ajax

我的html中有一个带有空白数据属性的对象元素,然后在ajax响应后设置。现在我想在对象内容文档的DOM准备就绪时获取事件。

如果我在对象元素上使用onload,它在firefox和Opera中工作,但它在基于Webkit的浏览器中不起作用。

如何在所有浏览器中使用onload事件触发器

html看起来像这样

<object id="myobj" data="" />

在FF中工作但在WebKit中不起作用的javascript是

 e = doc.getElementById("myobj")
 e.onload = function(){}
 e.data="http://myurl"

3 个答案:

答案 0 :(得分:0)

理论上onloadstrictly for the body element。如果某些浏览器允许其他元素为它们提供更多功能,但这不是必需的。

另外:你的分号键坏了吗?

答案 1 :(得分:0)

我已经尝试使用Safari 5.0.2的代码并且它有效。您可以在分配新值后通过警报进行验证。当您查看源时,它不存在,但可以从任何方法访问新分配的值。

 e.data="http://myurl";
 alert(e.data);

即:

function doThis() {
 var data = document.getElementById("myobj");
 alert('retrieved from a method ' + data.data);         
 } 

答案 2 :(得分:-3)

在jQuery中,要在页面加载时调用某些内容,您只需使用:

$(document).ready(function()
{
    //your code here to populate your object's data attributes
});

这适用于所有浏览器。