5

最初の投稿 - こんにちは!fancybox ( Fancybox ホームページ) を使用して、モーダル ウィンドウを表示します。この div 内に iFrame を含む非表示の div を表示しようとしています。よく働く。リンクを 2 回目にクリックすると、iFrame が読み込まれません (404 エラーではなく、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>
4

4 に答える 4

4

これと同じ問題がありました。src 属性を削除していたという Frode の評価に基づいて、fancybox 呼び出しに「onClosed」コールバックを追加し、それを元に戻すことができました。

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

function reloadIframe() {
    jQuery('#iframe_element').attr('src','http://example.com');
}
于 2012-01-10T21:08:53.600 に答える
3

iframefancyboxが DOM から要素を抽出し、独自のコンテナーに配置するように見えます。次に、ファンシーボックスを閉じると、元の場所に挿入しようとしますが、src属性値が失われます。

ファンシーボックスの男が承認したiframeを開く方法は次のようです。

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

明らかに理想的ではありません.. もっと身近な人のチャイムを聞きたいです.

于 2011-02-23T14:34:49.860 に答える
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);
        }
    });
});
于 2012-11-23T11:32:33.003 に答える
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); 
        } 
    }); 
};
于 2012-08-16T10:58:13.403 に答える