質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • Java

    16160questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • JSP

    1048questions

    JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

  • jQuery UI

    190questions

    jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

jQueryのDialogメソッドについて

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 897

syncrock

score 189

jqueryのdialogを使用してmodal画面を表示させています。
やり方としてはiframeを利用して中身を随時変更して表示しています。

html = "<iframe src='" + url + "' id='" + 指定したいId + "' frameborder='0' scrolling='auto'>";
$(html).dialog(高さなどのオプションを入れた変数);

ieやchromeでは特に問題なく動作しているのですが、
Firefoxの場合のみなぜか親画面の最下部に変なスペース(空白)が出来てしまいます。
そのせいでスクロールバーが親画面に表示されます。
dialogが表示されればスペースが表示され、閉じれば消えます。
iframeが中身は出ないものの画面下部に領域として確保されて出ている?
と思っていますが、どうなのでしょうか。
Firefoxのみこの現象になっており、解決策が見えません。。。
Firefoxでdialogを使用するにあたり何か注意点等ありますでしょうか?

---------------追記

display:blockをnoneに変更するともちろんダイアログは消えますが、
親画面のスペースも消えます。
やはり、ダイアログ分の領域が何故か画面下部に表示されているみたいなのですが、わかりますでしょうか。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kei344

    2016/11/21 11:08

    書かれている状況が再現するコード(HTML/CSS/jsなど)か、再現するURLを提示されたほうが回答を得やすいと思います。

    キャンセル

回答 1

checkベストアンサー

0

Firefoxでiframe を使用するとなるのだと思います。
ダイアログでiframeを使うメリットがない気がします。
divではのほうが制御しやすいです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/11/21 09:14

    回答ありがとうございます。
    まだその事象についてネットでの記載を見つけられていませんが、
    現状、何も回避策はないということでしょうか。

    キャンセル

  • 2016/11/21 09:55

    基本iframeを避けるので、その現象に陥ったことがないのですが、
    埋め込み部分のソースもないとどんな状況で発生しているかが分からないです。
    $(html)の部分は普通は埋め込み部分のID等を指定すると思うのですが、
    変数htmlはどこかにappendしていますか?
    していない場合、もしかしたらBODYの最後、HTMLタグの外に生成されてしまっているかもです。

    キャンセル

  • 2016/11/21 10:18

    >HTMLタグの外に生成されてしまっているかもです。
    その通りです。
    appendしていないので、(おそらく)外に生成されています。
    親画面の下に意味のない白い空白が出来ている感じです。
    動的に内容を変えたかったのでネットでの内容を参考にiframeで行うようにしたのですが、対応不可ということでしょうか。。。

    キャンセル

  • 2016/11/21 10:22

    ちなみにiframeにした理由として、別ページとしたかったというのがあります。
    dialogで表示したページの中で処理を行い親に返したいと思っておりました。

    キャンセル

  • 2016/11/21 10:42

    であればappendすれば直る気がします。
    適当なappend用のタグを用意して(DIV等)、
    そこにappendして、処理終了後に手動でそのタグ配下削除するようにしては?
    HTMLタグのルートタグ配下に他のタグを記載するのがHTMLのルールなので、
    外に作られてしまっている場合は、回避不可です。(バグです)

    キャンセル

  • 2016/11/21 11:18

    divにappendするようにして、そのdivに対してdialogメソッドを実行しましたが変わらずでした。
    変わらずHTML外に空白が出来てしまいました。。

    キャンセル

  • 2016/11/21 11:25

    iframe に対してdialogメソッドを実行しても駄目ですか?

    キャンセル

  • 2016/11/21 13:10

    同じでした。。

    キャンセル

  • 2016/11/21 13:12

    Firefoxの開発ツールで、空白部分の情報を見てみてください。
    どうなってますか?

    キャンセル

  • 2016/11/21 13:23

    それがどこに当てても当たらないんです。
    要素を選択しようとしても選択が出来ない状態です。

    キャンセル

  • 2016/11/21 13:34

    ダイアログ生成後にiframeを開発ツールから消すとどうなりますか?

    キャンセル

  • 2016/11/21 14:05

    iframeを消すと空白も消えました。

    また、一応解決?なのかわかりませんが。
    これまでpositionをrelativeにしていましたが、absoluteに変更し、topを0にすると問題なく表示されました。
    (html外の空白が無くなりました。)
    なぜなくなったのかは、僕の知識ではまだわかっていませんが。。。

    キャンセル

  • 2016/11/21 14:53

    なんとなく分かりました。相対位置にしていたのを絶対位置に変更したので、
    ブラウザの大きさに左右されなくなったのですね。
    positionをrelativeの状態でブラウザのサイズを変更すると空白が狭まったりしませんか?

    キャンセル

  • 2016/11/21 15:42

    http://www.css-lecture.com/log/css/037.html
    ここにいい資料がありました

    キャンセル

  • 2016/11/21 16:24

    資料ありがとうございます。
    位置の問題であればなぜiframeが上部に表示されているのにもかかわらず、iframe分の余白が下に出来てしまったのかが謎ですが。。。

    >positionをrelativeの状態でブラウザのサイズを変更すると空白が狭まったりしませんか?
    特に狭まったりというのは見受けられませんでした。

    キャンセル

  • 2016/11/21 16:50

    そうなると、挿入先のタグの問題な気がしますね。
    全体が分からないですが、タグの階層や、CSSの問題ですね。

    キャンセル

  • 2016/11/21 17:58

    そうですね、そのような気がします。
    こちらの記述の仕方が問題であると思いますので、一旦締めたいと思います。
    やりとりありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.48%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Java

    16160questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • JSP

    1048questions

    JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

  • jQuery UI

    190questions

    jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。