iframeとそのコンテンツが読み込まれたが、運があまりないことを検出しようとしている。私のアプリケーションは、親ウィンドウのテキストフィールドに入力を受け取り、iframeを更新して 'ライブプレビュー'を提供します。iframeコンテンツが読み込まれたことを検出する(クロスブラウザ)
iframeロードイベントが発生したときを検出するために、次のコード(YUI)で開始しました。
$E.on('preview-pane', 'load', function(){
previewBody = $('preview-pane').contentWindow.document.getElementsByTagName('body')[0];
}
'preview-pane'は、iframeのIDで、イベントハンドラをアタッチするためにYUIを使用しています。しかし、iframeのロード時にコールバックでボディにアクセスしようとすると失敗します。イベントハンドラが準備される前にiframeが読み込まれるためです。このコードは、それを生成するPHPスクリプトをスリープさせることによってiframeの読み込みを遅らせると機能します。
基本的には、iframeが読み込まれてドキュメントが準備完了していることをブラウザが検出する正しい方法は何ですか?
はYUIで出発し、悪いアイデア(ならびに任意の他のJSライブラリ)です。どうして?あなたはライブラリがどんな魔法をしているのか分かりません。彼らが完全に "負荷"をサポートすることができない場合は、はっきり読めるようにjavascriptであなた自身を行うほうがよいでしょう。 – Christian
ライブラリ@Christianのソースコードをよく読むことができます。私はこれが、通常、あなたが実装を使用するかどうかにかかわらず、あなた自身でそれを行う方法に関する素晴らしいヒントを与えることがわかります。 – AJP
@AJPあなたは私の誤解を誤解しました。あなたがよく分からないことをしているのであれば、コードが少なくて済むので、エラーの余地が少なくなります。 – Christian