2012-04-01 2 views
6

に消えます。 Firefoxでは、内容は非常に簡単に見えますが、突然消えます。 Firebugでこの行にブレークポイントを設定してから、実行を続けると、内容は内部にとどまります。しかし、私が後でラインにブレークポイントを設定すると、それは消えます。

この問題を解決する手掛かりはありますか?

+0

これは正しいフィーダーですか?私はiframeと関係があるものは見ていない。 –

+0

申し訳ありません、リンクを編集しました。 –

+0

さて、Chrome、Safari、Firefoxで同じ結果が得られました。私はMacでFirefox 11を使用しています。それは別のものになることができますか? –

答えて

2

私はあなたのコード全体を見ることはできませんが、あなたが私のやり方で私に与えたもので働いています。スクリプトが実行される前に残りのHTMLを読み込ませて予期しないことが起こる可能性をスクリプトに与えていない可能性があります。私は、ウィンドウがロードされるのを待たなければ画像が表示されないことを知っています。 jQuery.html()は与えられた要素内のすべてのHTMLを置き換えること

$(window).load(function() { 

    var html = "<img src='http://www.google.fr/logos/2011/Louis_Daguerre-2011-hp.jpg' alt='image' />"; 


    $("#myIframe").contents().find('body').html(html); 

}); 

はただ覚えている:あなたが以下のように、やったすべてを包む場合は、問題を持つべきではありません。

4

動的に作成されたiframeを埋めようとしているときに同様の問題が発生しました。 iframe onloadイベントを使用して私の状況を解決しました。見たように、オンロードソリューションはFFよりも他のブラウザでは機能しませんので、標準的な方法で保存できます。

/** 
* Fills an iframe using data stored within textarea. Useful for creating email 
* template previews 
* 
* @param {String} inputSelector 
* @param {String} outputElemClasses 
* @return void 
*/ 
function displayEmail(inputSelector, outputElemClasses) 
{ 
    $(inputSelector).each(function(i) { 
     var templateData = $(this).text(); 
     var $iframe = $('<iframe></iframe>'); 
     $iframe.addClass(outputElemClasses); 
     $iframe.insertAfter(this); 
     // non-firefox 
     updateIframe($iframe, templateData); 
     // firefox 
     $iframe.load(function(e){ 
      updateIframe($iframe, templateData); 
     }) 
    }) 
} 


/** 
* Fills in target iframe using supplied data 
* 
* @param {Object} $iframe 
* @param {String} data 
* @return void 
*/ 
function updateIframe($iframe, data) 
{ 
    $iframe.contents().find('html').html(data); 
}    
関連する問題

 関連する問題