2013-09-12 4 views
1

Я добавил iframe в диалоговое окно. Каждый раз, когда я закрываю диалоговое окно, держит последний URL-адрес iframe, а не первый. Как я могу открыть исходный URL-адрес при каждом закрытии и снова открыть его?Получить исходный URL-адрес iframe при каждом открытии диалогового окна

HTML Пример:

<div id="opener_1">OPEN</div> 

<div id="dialog_1"> 
<iframe src="http://www.wikipedia.com" width="570" height="320"></iframe> 
</div> 

Jquery Пример:

var $JQ_ = jQuery.noConflict(); 

    $JQ_(function(){ 
    $JQ_("#dialog_1").dialog({autoOpen:false, 
           width:'auto', 
           height:'auto', 
          resizable:false, 
            show:{effect:"fade", duration:250}, 
            hide:{effect:"fade", duration:250} 
    }); 
    $JQ_("#opener_1").click(function(){$JQ_("#dialog_1").dialog("open");}); 
    }); 

И живой пример here ...

ответ

0

Вы можете выбрать IFRAME сразу после нажатия на кнопку , в диалоговом окне div и заново установите его src атрибут.

Проверить этот обновленный jsFiddle

(Делая frame.attr("src", src), вы перезапустить Функция Iframe)

1

Попробуйте это в вашем коде:

var $frame = $("#myFrame"); 
var firstUrl = $frame.attr("src"); 

var $JQ_ = jQuery.noConflict(); 

$JQ_(function() { 
    $JQ_("#dialog_1").dialog({ 
     autoOpen: false, 
     width: 'auto', 
     height: 'auto', 
     resizable: false, 
     show: { 
      effect: "fade", 
      duration: 250 
     }, 
     hide: { 
      effect: "fade", 
      duration: 250 
     }, 
     close: function() { 
      $frame.attr("src", firstUrl); 
     } 
    }); 

    $JQ_("#opener_1").click(function() { 
     $JQ_("#dialog_1").dialog("open"); 
    }); 
}); 

Реализует close событие диалога.

jsFiddle: http://jsfiddle.net/hescano/Y6hdj/3/

API Документация: http://api.jqueryui.com/dialog/#event-close

+1

+1 хороший подход, но я не буду делать 'firstUrl' глобальный и поместить его между' $ JQ_ (функция() { ' и диалоговый вызов, видимый для закрытой области действия –

Смежные вопросы