Диалоговое окно JQuery UI с использованием URL-адреса iframe

Я использовал nyroModal и Fancybox в качестве инструментов для веб-сайтов, но в этом случае я должен использовать инструмент диалога JQuery UI. Мне нужен этот диалог для загрузки страницы. Я считаю, что я делал это раньше, но все, с чем я сталкиваюсь, кажется более сложным, чем должно быть. Не могу ли я использовать что-то вроде...

$( "#dialog" ).dialog({
      autoOpen: false,
      modal: true,
      url: http://www.google.com
      });

<button id="dialog">Open Dialog</button>

и открыть страницу в простом iframe? Спасибо заранее.


Я обнаружил, что у меня есть этот код,

<script>
  //$.fx.speeds._default = 500;  
  $(function() {    
    $( "#dialog" ).dialog({      
    autoOpen: false,      
    show: "fade",   
    hide: "fade",
            modal: true,            
            open: function () {$(this).load('nom-1-dialog-add-vessels.html');},                     
            height: 'auto',            
            width: 'auto',        
            resizable: true,    
            title: 'Vessels'    });     

    $( "#opener" ).click(function() {      
    $( "#dialog" ).dialog( "open" );      
    return false;   
    });  
  });  
  </script>

<div id="dialog"></div><button id="opener">Open Dialog</button>

но не загружает фактическую страницу.

Ответ 1

url не является одним из параметров в диалоговом окне jQuery UI.

Одна из вещей, которая сработала для меня, - это иметь iframe внутри div, который является вашим диалогом, и установить его свойство url в событии open.

Как

<div id="dialog">
    <iframe id="myIframe" src=""></iframe>
</div>
<button id="dialogBtn">Open Dialog</button>

И JS:

$("#dialog").dialog({
    autoOpen: false,
    modal: true,
    height: 600,
    open: function(ev, ui){
             $('#myIframe').attr('src','http://www.jQuery.com');
          }
});

$('#dialogBtn').click(function(){
    $('#dialog').dialog('open');
});

Вы обнаружите, что вам нужен стиль для iframe, чтобы он выглядел неплохо.

#myIframe{
  height: 580px;
}

EDIT: Рабочая версия - http://jsbin.com/uruyob/1/edit

Ответ 2

На основе Floyd Pink и вашего кода я укрепил код. Проверьте http://jsfiddle.net/Nz9Q8/

 $(function () {
  $("#dialog").dialog({
    autoOpen: false,
    show: "fade",
    hide: "fade",
    modal: true,
    open: function (ev, ui) {
      $('#myIframe').src = 'http://www.w3schools.com';
    },
    height: 'auto',
    width: 'auto',
    resizable: true,
    title: 'Vessels'
  });

  $("#opener").click(function () {
    $("#dialog").dialog("open");
    return false;
  });
});

Ответ 3

Я попробовал аналогичную вещь. Проверьте http://jsfiddle.net/P2Q5U/

<div id="dialogContent" title="Basic dialog">
  <iframe src="http://www.w3schools.com"></iframe>
</div>
<button id="dialog">Open Dialog</button>

 $(function () {
   $("#dialogContent").dialog({
     autoOpen: false,
     modal: true
   });

   $('#dialog').click(function () {
     $("#dialogContent").dialog( "open" );
   });
 });