7

私はかなり長い間、簡単な解決策を探していました。ページ (たとえばhttp://www.google.com ) を JQuery UI ダイアログ ウィンドウに表示したい。私のサイトからのすべてのリンクが上記のウィンドウに表示されるように、後で URL を動的に追加する予定です。

以下を試してみましたが、リンクをクリックするとダイアログウィンドウが空になります。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Test</title>


<meta charset="utf-8" />
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css" />
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>
  <script>
$(document).ready(function() {
    $('#openwindow').each(function() {
        var $link = $(this);
        var $dialog = $('<div></div>')
            .load($link.attr('href'))
            .dialog({
                autoOpen: false,
                title: $link.attr('title'),
                width: 500,
                height: 300
            });

        $link.click(function() {
            $dialog.dialog('open');

            return false;
        });
    });
});
  </script>

</head>
<body>
<a id="openwindow" href="http://www.google.com">Click me to test.</a>
</body>
</html>

いくつかの例を見つけましたが、実際に機能するものはありませんでした。助けていただければ幸いです。

前もって感謝します。

4

4 に答える 4

15

提案されているように必要はありませんが、ここiframeでダイアログに関するドキュメントを読む必要があります。

代わりに、プロパティにコンテンツをロードする必要があり.openます --

$( "#openwindow" ).dialog({
 open: function(event, ui) {
   $('#divInDialog').load('test.html', function() {
     alert('Load was performed.');
   });
  }
});

また、.each--ididページ内で一意であると想定されています。代わりに使用classします。

于 2013-03-17T09:16:40.200 に答える
7

あなたはこれを試すことができます

$(function(){
    $('a').on('click', function(e){
        e.preventDefault();
        $('<div/>', {'class':'myDlgClass', 'id':'link-'+($(this).index()+1)})
        .load($(this).attr('href')).appendTo('body').dialog();
    });
});

dialog上記のコードは、ページ上の任意のリンクをクリックすると新しい を作成し、などmyDlgClassの各ダイアログにクラス名と一意の ID を追加しますが、同じオリジン ポリシーにより、外部リンクではなくページ リンクのみが読み込まれることに注意してください。 .link-1link-2

アップデート :

を使用できる外部サイト リンクを使用するiframeには、 iframe を使用した例を次に示します。

于 2013-03-17T09:37:05.370 に答える
1

これ は役立つかもしれません..ここで私がやっていることは、リンクの上にカーソルを置いて、URLがダイアログボックスで開いていることです..複数の同じタグが動的に作成されている場合はclass代わりに使用する必要があります..そうでなければ、単一の.idid

$('.openwindow').click(function(){
var $this=$(this);
         $.ajax({
                url: $this.attr('href');//You got the link here
                success: function(data) {
                    //show the dialog here..
                    //"data" contains the html returned by the url
                },
                error: function(jqXHR){
                    //Do something here
                }
              });
        });
于 2013-03-17T09:34:18.037 に答える
0

iframe を使用できます。

 $("#iframeId").attr("src", $(this).attr("href"));
 $('#dialogId').dialog('open');
<div id="divId" >
    <IFRAME id="iframeId"  SRC="" width="" height = "" >
</div>
于 2013-03-17T09:10:28.777 に答える