必要なのは、リモート コンテンツを Twitter Bootstrap モーダル ウィンドウで開く方法の簡単な例だけです。
Bootstrap v2.0.4 を使用していますが、うまく動作しません。通常のモーダル ウィンドウを開くことはできますが、その中にあるリモート ファイルを開くことはできません。
必要なのは、リモート コンテンツを Twitter Bootstrap モーダル ウィンドウで開く方法の簡単な例だけです。
Bootstrap v2.0.4 を使用していますが、うまく動作しません。通常のモーダル ウィンドウを開くことはできますが、その中にあるリモート ファイルを開くことはできません。
まず、リモート データは同じオリジン ポリシーを満たす必要があります。それが満足できない場合、これ以降はすべて失敗します (外部 URL を読み込もうとしている場合は、Twitter Bootstrap 外部 URL が機能しないを参照してください)。
Bootstrap data-api を使用してリモート コンテンツをモーダルにロードするには、2 つの方法があります。つまり、モーダルをトリガーする要素にロードするリモート URL を指定するか<a>
、モーダルのマークアップで URL を指定します。
前者では、hrefプロパティを使用します。
<a data-target="#myModal" href="/remote/url" role="button" class="btn" data-toggle="modal">Launch demo modal</a>
後者では、data-remoteプロパティを使用します。
<div class="modal fade hide" id="myModal" data-remote="/remote/url">...</div>
要素でそれを指定する利点は<a>
、各 に対して異なるリモート URL を持つことができるに<a>
もかかわらず、単一のモーダルのみを使用できることです。同じコンテンツでモーダルを起動する手段が複数ある場合は、 data-remoteプロパティを使用する方が有利な場合があります。次に、それを起動するもの (JS 呼び出しであっても) に関係なく、呼び出しのすべてのメソッドでその情報を複製する必要なく、一貫して同じリモート コンテンツを提供します。
後者の方法を使用したデモは次のとおりです。
モーダルの本体のコンテンツはリモート html です。
リンクを使用して、(同じオリジンの) リモート URL を含むブートストラップ モーダルを開く方法を示す実際の例を JSFiddle にドロップしました。これは、リモート URL で機能するようにいくつかのマイナーな変更を加えた、twitter のブートストラップ ドキュメントからのほぼそのままのコピー アンド ペーストです。
要するに、開きたい URL をhref属性で指定し、モーダル ウィンドウとして機能する DIV でdata-target属性を指定するだけです。
ここに同じコード:
<!-- Button to trigger modal -->
<a href="/matt_hwy1/uEQEP/4/show/" data-target="#myModal" data-toggle="modal">Launch demo modal</a>
<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">Modal Test Header</h3>
</div>
<div class="modal-body">
<p>One fine body…</p>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
<button class="btn btn-primary">Save changes</button>
</div>
</div>