web-dev-qa-db-ja.com

iframe URLを使用したjQuery UIダイアログ

私はnyroModalとFancyboxをWebサイトのツールとして使用しましたが、このインスタンスでは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>

しかし、実際のページはロードしていません。

10
triplethreat77

urljQuery UIダイアログ のオプションの1つではありません。

私のために働いたものの1つは、ダイアログであるiframe内にdivを持ち、openイベントでそのurlプロパティを設定することです。

お気に入り:

<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をナイスに見せるには、iframeでスタイリングが必要な場合があります。

#myIframe{
  height: 580px;
}

編集:作業バージョン- http://jsbin.com/uruyob/1/edit

32

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
Muthukumar

同様のことを試しました。これを確認してください 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" );
   });
 });
0
Muthukumar