2011-07-01 41 views
1

我有一個對象元素在我的HTML與一個空白的數據屬性,然後設置稍後的ajax響應。現在我想在對象內容文檔的DOM準備就緒時獲取事件。onload沒有被調用的對象元素

如果我在對象元素上使用onload,它在firefox和Opera中工作,但它在基於Webkit的瀏覽器中不起作用。

我怎麼能有onload事件觸發器,在所有的瀏覽器

的HTML看起來像這樣

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

,在FF作品的JavaScript,但不是在WebKit是

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

使用庫如jQuery出了問題? – mccow002

+0

不,如果jquery照顧它,我會很樂意使用它 – Raks

+0

@Raks你能提供一個現場演示嗎? –

回答

0

理論上onloadstrictly for the body element。如果某些瀏覽器允許其他元素給他們更多的權力,但不是必需的。

另外:是你的分號鍵壞了嗎?

+1

不只是身體的元素。加載事件觸發圖像,iframe,腳本,樣式表,視頻/音頻元素,... –

+0

XHTML 1.1 Basic並不完全是瀏覽器支持的標準化標記語言的綜合指南 – Quentin

-3

在jQuery中,調用在頁面加載的東西,所有你需要做的是使用:

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

這將在所有的瀏覽器。

+2

DOM準備就緒,**不* *頁面加載...和問題是關於''加載,無論如何不是頁面加載。 – Quentin

+0

如果您在閱讀之前已經閱讀過上述內容,您會看到我意識到我可能誤解了這個問題並試圖澄清 – mccow002

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);   
}