Загрузка фрейма с предыдущим выбранным видом - PullRequest
1 голос
/ 13 августа 2011

У меня есть разные теги привязки на главном экране, а также всплывающий элемент div с iframe. при щелчке по тегам привязки в iframe загружаются разные представления. Моя проблема заключается в том, что, когда я нажимаю первый тег привязки, iframe загружается с идеальным представлением. Когда я щелкаю следующий тег привязки, iframe первоначально показывает предыдущее представление, а затем загружается только выбранное представление. Предыдущий вид отображается в iframe в течение нескольких секунд перед загрузкой выбранного вида.

jQuery для отображения всплывающего окна iframe:

$("#crtSubInstn").live("click", function(e) {
            $(".iframe_popup_window").fadeIn();
            $("#popupHead").html("Create Instruction");
            $("#updtFeatures").show();
            $("#popup_content").addClass("editor_iframe");
        });
        $("#udtAttrib").live("click", function(e) {
            $(".iframe_popup_window").fadeIn();
            $("#popupHead").html("Add Attribute");
            $("#updtFeatures").show();
        });

На всплывающем элементе div есть кнопка закрытия, которая при щелчке скрывает всплывающий элемент div с iframe. JQuery для события закрытия -

$('.iframe_popup_window_close').live('click', function() { 
    //$("#frmUpdtFeatures").contents().val();
    //window.frames["InstnDetails"].location.reload();
    //$('#frmUpdtFeatures').attr('src', '');
    $("#popup_content").removeClass("editor_iframe");
    $('.iframe_popup_window').fadeOut(function() {
        $('a.close').remove();
    }); //fade them both out

    $(".overlay_iframe").hide();

    return false;
});

Как я могу справиться с этой ситуацией. Могу ли я установить для iframe scr значение null при закрытии всплывающего окна ??

Ответы [ 2 ]

1 голос
/ 13 августа 2011

Вы можете установить src в значение about: blank, когда всплывающее окно скрыто, например:

$(iframe).attr('src', 'about:blank')

Это будет работать во всех основных браузерах.

Вы также можете прослушивать событие загрузки iframe и показывать всплывающее окно только после загрузки кадра. Что-то вроде:

function showPopup() {
    ... show popup code goes here ...
}

$(iframe).attr('src', '/some/url/here');

$(iframe).load(function() {
  showPopup();
})

Onload работает некорректно во всех браузерах для iframes, но может обеспечить поведение, которое вы ищете. Я бы рекомендовал использовать оба about: blank при скрытии всплывающего окна и отображать всплывающее окно в событии загрузки iframe.

0 голосов
/ 13 августа 2011

Кажется, что когда вы закрываете iframe, вы должны очистить или скрыть содержимое в нем, а затем показывать только iframe в следующий раз после загрузки нового содержимого. работая с содержанием iframe и показывая нам структуру HTML в iframe, мы могли бы помочь немного подробнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...