开发者

onload not getting called for object element [duplicate]

开发者 https://www.devze.com 2023-03-16 14:51 出处:网络
This question already has answers here: Load event not fired on Safari when reloading page 开发者_JAVA技巧
This question already has answers here: Load event not fired on Safari when reloading page 开发者_JAVA技巧 (2 answers) Closed 4 years ago.

I have an object element in my html with a blank data attribute which is then set later upon a ajax response. Now I want to get the event when the DOM for the object content document is ready.

If I use onload on the object element it works in firefox and Opera but it does not work in Webkit based browser.

How can I have the onload event trigger in all the browsers

The html looks like this

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

the javascript that works in FF but not in WebKit is

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


In theory onload is strictly for the body element. If certain browsers allow it for other elements more power to them but it's not required.

Also: is your semicolon key broken?


I've tried the code with Safari 5.0.2 and it worked. You can verify by alerting after assigning the new value. When you view the source it isn't there but the newly assigned value can be accessed from any method.

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

ie:

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


In jQuery, to call something on page load, all you have to do is use:

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

This will work in all browsers.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号