2011-02-23 8 views
5

初めての投稿 - こんにちは!私はファンシーボックス(Fancybox homepage)を使用してモーダルウィンドウを表示します。私はこのdivの内側にiFrameを使って隠しdivを表示しようとしています。よく働く。 2回目にリンクをクリックすると、iFrameがロードされません(404エラーではなく、iFrameにコンテンツがありません)。誰も助けることができますか?ファンシーボックスはiFrameを初めて開けません

重要なビット:

<script type="text/javascript"> 
function openIframeLink() { 
    $.fancybox({ 
     'type'   : 'inline', 
     'href'   : '#data' 
    }); 
}; 
</script> 

そしてHTML:

<div id="hiddenElement"> 
    <iframe id="data" src="frames/frame4.php" width="100%" height="300"></iframe> 
</div> 
+0

、ウルURLとの問題が:) uは 'openIframeLinkは()'あなたは一度だけところで化粧箱を必要とする(と思う)を呼び出します – Val

答えて

3

fancyboxはDOMからiframe要素を抽出し、それ自身の容器にそれを置くように見えます。次に、ファンシーボックスを閉じると、元の場所に戻って挿入しようとしますが、属性値はsrcです。

iframeを開くfancyboxの男の承認された方法は以下のようです。

<a id="mylink" class="iframe" href="frames/frame4.php">mylink</a> 
<script type="text/javascript"> 
    $("#mylink").fancybox(); 
</script> 

それを回避するための1つの方法は、iframe要素のクローンを作成することで、明らかにすなわち

function openIframeLink() { 
    $.fancybox({content: $('#data').clone()}); 
} 

ない理想的な..私はで誰かより身近チャイムを聞くのが大好きです。

+0

こんにちは!どうもありがとうございます。それは私が望んでいたこと(おそらく私のせい)をしなかったのですが、あなたは私に問題を解決するのに十分な正確さを示しました。/ \t theSrc = $( "#data")。attr( 'src'); 'function openIframeLink(){ \t/*ファンシーボックスが失う前にsrcを取得します。 \t $ .fancybox({ \t \t 'タイプ' \t \t \t: 'インライン'、 \t \t 'のhref':関数(){ \t \t \t $( '#data' \t \tは\t \tをonClosed '#data')。attr( 'src'、theSrc); \t \t} \t}); }; '本当にありがとうございました! – Djave

4

はこれを持っていました同じ問題。それはsrc属性を除去していることフローデの評価に基づき、私は私のfancyboxコールに「onClosed」コールバックを追加し、それを再度追加することができた:

jQuery('#iframe_element').fancybox({ 
    'onClosed': reloadIframe 
}); 

function reloadIframe() { 
    jQuery('#iframe_element').attr('src','http://example.com'); 
} 
0

Fancyboxは、src属性を失います。ここでは、事前に要素を知らなくても、私は

function openIframeLink() { 
    /* Grab the src before fancybox loses it */ 
    theSrc = $("#data").attr('src'); 
    $.fancybox({ 
     'type'  : 'inline', 
     'href'  : '#data', 
     onClosed  : function() 
     { 
      $('#data').attr('src', theSrc); 
     } 
    }); 
}; 
0

これは、src属性を回復する私の方法であることから、これまで使用してきた回避策です。

誰かを助けるかもしれない...化粧箱が働いている

$(".fancybox.iframe").each(function(){ 
    var target = $($(this).attr("href")); 
    var src = target.attr("src"); 
    $(this).fancybox({ 
     'type': "inline", 
     'content': target, 
     'onClosed': function(){ 
      target.attr("src", src); 
     } 
    }); 
}); 
関連する問題