3

ページに iFrame があり、Jquery ダイアログを iFrame ではなく親の中央に配置したいと考えています。

私はこれを行う方法を見つけることができません...

これは、iFrame ページを単独で実行すると機能します。

var LLopt = {
     position: {my: "center center", at: "center center", of: parent.top}
}; 
$("#locationdisplaybox").dialog(LLopt).dialog("open");

...しかし、親の中で実行しようとすると、コンソールにエラーは表示されませんが、実行されません (目に見えないエラーがあるかのように)。

これは、iFrame から親にアクセスする際のセキュリティ上の制限によるものだと思います。

「 of: window.parent.top」なしで上記を実行すると正常に動作しますが、iFrame ページの下部にあるほど、ダイアログが下部に表示されます (中央に配置されません)。

これを中心に置く方法を知っている人はいますか?

実際の問題を確認するには、こちらを参照し、[会場の詳細を表示] リンクをクリックしてください。

4

3 に答える 3

0

高さと幅を取得できる場合は、これを試してください。

var dlgWidth = 750;
var dlgHeight = 300;

var dlgX = (window.innerWidth - dlgWidth)/2;
var dlgY = (window.innerHeight - dlgHeight)/2;

var LLopt = {position: [dlgX,dlgY], width: dlgWidth, height: dlgHeight};

$("#locationdisplaybox").dialog(LLopt, dlgWidth);

完全なダイアログの定義とメソッドについては、このリンクを確認できます

http://api.jqueryui.com/dialog/

文字列:ビューポート内の位置を表す文字列。可能な値: "center"、"left"、"right"、"top"、"bottom"。

配列:ビューポートの左上隅からのピクセル オフセットの x、y 座標ペアまたは可能な文字列値の名前を含む配列。

于 2013-08-05T19:43:29.097 に答える