質問: 現在Java,javascript(jQuery),tymeleafを使ってLINEのバナーを実装しようとしています。 質問があるのですが、 結論から言うと、 **ページ上でなく、モーダルダイアログ上に「LINEで送る」バナーを設置すると初期表示時にdivタグがiframeタグに変わり、バナーが正常に表示されなくなるのはどういった原因が考えられるでしょうか?** リンク先()を参考に以下のタグを設置しました。 ``` ``` これをページ上に設置すると正常に表示され、バナーとして機能します。 しかしモーダルダイアログ上に設置すると、正常に表示されないのです。 正常に表示されないとは、divタグがiframeタグに変わり、座標位置がtop:0,left:0となり、おかしな位置に隠れており、見えません。 モーダル上でこのような現象が起きるので、 このモーダルのライブラリであるjsファイルが初期表示時に何か行なっているとは思うのですが、該当箇所が大きかったり、ライブラリの管理がままならなくて調べづらかったりで、どこを直せばいいか、何が影響しているのかわからずにいます。 もしこのような現象を体験したことがある、知っている、どのような対応をしたら直るなどといったアドバイスを頂ける方がいれば是非教えて頂けると助かります。よろしくお願い致します。
回答: 状況の追記です。 モーダルダイアログはdivタグで生成されおり、初期表示時display:noneで表示されていない状態です。 それをモーダル呼び出しボタン押下時にjavascriptによってshow()し、表示させていました。 とくにライブラリを使うでもなく、単純にjavascriptによってのみ構成されていたように思います。 LINEのバナーが表示されないのは初期表示時にモーダルが非表示になっており、その中にいるバナーが座標をとれなかったのかもしれません。 そのため、制御としては初期表示時にモーダルを一時的に表示するなどして座標を取れるようにし、LINEバナーを本来の位置に表示するようにする必要があるかもしれません。 divタグがiframeタグに変わるところはまだ解析できていません。