2011-07-01 17 views
1

私は空のデータ属性を持つHTMLのobject要素を持っています。これは後でajaxレスポンス時に設定されます。今度は、オブジェクト・コンテンツ・ドキュメントのDOMが準備されているときにイベントを取得したいと考えています。オブジェクト・エレメントのためにonloadが呼び出されない

object要素でonloadを使用すると、firefoxとOperaでは動作しますが、Webkitベースのブラウザでは機能しません。私は、HTMLがこの

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

FFで動作しますが、WebKitのに

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

は論外なのjQueryなどのライブラリを使用していますか? – mccow002

+0

いいえ、もしjqueryがそれを処理するなら、私はそれを使用して喜んでします – Raks

+0

@Raksライブデモを提供できますか? –

答えて

0

ありませんジャバスクリプトのように見えるすべてのブラウザ

でのonloadイベントトリガを持つことができますどのように

理論上、onloadstrictly for the body elementです。特定のブラウザで他の要素に対してより多くのパワーを与えることができますが、必須ではありません。

また、セミコロンキーが壊れていますか? jQueryので

+1

body要素だけではありません。ロードイベントは、イメージ、iframe、スクリプト、スタイルシート、ビデオ/オーディオ要素などで発生します。 –

+0

XHTML 1.1 Basicは、ブラウザでサポートされている標準化されたマークアップ言語の包括的なガイドではありません – Quentin

-3

、あなたがしなければならないすべてが使用され、ページのロードに何かを呼び出す:

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

これは、すべてのブラウザで動作します。

+2

DOM準備完了、 * page load ...そして、質問は ''ロードについてですが、とにかくページロードではありません。 – 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);   
} 
関連する問題