2011-01-20 5 views
1

jquery-ui-dialogを使用していて、正常に動作する以前に構築されたページはほとんどありません。 今、私の要件は、iframeを含むページを作ることでした。 このiframeは、以前に作成されたページを表示するために使用されます。 この場合、iframeからのダイアログは、iframe の親ドキュメントには表示されません。ダイアログボックスを表示するにはどうすればいいですか iframeを最小限の変更で含む親ドキュメントですか?親ドキュメントよりiframeからのjquery-ui-dialog

ありがとうございます。

+0

http://stackoverflow.com/questions/5967904/how-to-popup-a-dialog-in-another-frame-using-jquery-ui – Mhmd

答えて

1

ページが同じドメインにある場合は、iframeから親ドキュメントの関数を呼び出してダイアログを表示できます。例えば

...

parent.ShowDialog("Hello World"); 

与えられたテキストを使用してUIのダイアログを開き、親で機能付。

+0

親セレクタがHTMLDocumentオブジェクトを返すかわからない – crowicked

+0

投稿者私が呼び出している私のiframeドキュメント parent.showDialog( "#dialogId"); 私の親のページに私は持っています function showDialog(dialogId){ $(dialogId).dialog( "open"); }; これは動作していないか、エラーを表示していません – amit

+0

「親」なしで呼び出すようにしましたか?部? とにかく、私が間違っていない場合は、このように呼び出す正しい構文は次のようになります。 $( "iframe")。parent()。showDialog( 'id'); – crowicked

1

ああ、iframeは常に問題を引き起こすようです...それらを完全に避けるのが最良です(これはおそらくあなたの選択ではないと思います)。

問題はブラウザがiフレームを別のWebページとして解釈することです。わかりませんが、iフレームの外にあるダイアログエレメント(HTMLタグ)を定義し、内部からイベントを呼び出すことができます。以下のような 何か:

<html> 
<div id="callme" style="display:none;"> 
... 
your dialogstuff here 
... 
</div> 

<iframe> 
<!-- function that calls the dialog event here --> 
</iframe> 
</html> 

それはショットの価値がある、私は推測します。

+0

私はiframeドキュメントで私のダイアログのものを保持する方法があります...他の賢明なのは、すべての異なるダイアログを親ページに移動する必要があります。 – amit

関連する問題