- ベストアンサー
外部JSファイルでポップアップウインドウを開くには?
ウェブサイト内の複数ページからJavaScriptで「クリックするとサイズを指定したポップアップウィンドウが開く」ようにしています。 (ポップアップウィンドウ内に開くファイルは全て同じです。) しかしこのポップアップウィンドウ、情報量が変わるたびに高さを変更する必要があり、更新がとても煩雑です。 そこで、このJavaScriptを外部ファイルにして、開くウィンドウの高さの変更を、容易にしたいと思っています。 Dreamweaver8を使用していますので、ライブラリを使えば良いのかと思ったのですが、クリックする対象が、ページによってテキストだったり、ボタンだったり、バナーだったりとばらばらなので、無理そうです。 色々なサイトやこのサイトのページも調べてみましたが、どうしてもやり方がわかりません。 どなたか教えていただけませんでしょうか。 現在HTML内に書いてあるJavaScriptは <a href="javascript:;" onclick="MM_openBrWindow('ファイル名.html','','width=750,height=500')">クリックする対象</a> で、height=の数字を頻繁に変える必要があり、大変わずらわしいのです。 どうぞよろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
タブブラウザにはサイズ指定のポップアップを無視して別のタブに表示するだけってオプションもあるので、 最近~これからは余計な苦労してサイズ指定にこだわるのもあんまり意味ないと思います。通常のリンクに切り替えては? 一応、書くと <a href="javascript:;" onclick="winopen()">クリックする対象</a> --外部javascript-- function winopen(){ window.open('url','ウィンドウ名','width=xxx,height=yyy,scrollbars=yes,resizable=yes'); } ・ウィンドウ名には適当な名前をつけてください。 (同じウィンドウが複数開くのを防ぎます)
その他の回答 (3)
- steel_gray
- ベストアンサー率66% (1052/1578)
#3です。 urlを書いてしまった方が楽だと思い#3の文例も'ファイル名.html'からurlという表記に変更しました。 スクリプトを工夫すれば、一つのスクリプトで位置を判定させたりもできますが、何個でも必要に応じて分けるのもわかりやすいという利点はあるかと思います。 これが正しいという方法も特にないのでお好きな方法で。
お礼
有り難うございました。 >スクリプトを工夫すれば、一つのスクリプトで位置を判定させたりもできますが そう言う書き方もあるんですね。 でも、今の私には無理そうなので、とりあえずURLで簡単にやっておきます。 何度も有り難うございました。
<script type="text/javascript"> <!-- function MM_openBrWindow(url,name,option){ option=option+",scrollbars=yes,resizable=yes"; window.open(url,name,option); } //--> </script> <a href="#" onclick="MM_openBrWindow('http://www.google.co.jp/','popup','width=750,height=500'); return false">ここをクリック</a> この様な感じでどうでしょうか、スクロールバーとウインドウのサイズはいじれるようにしておく方が良いと思います。
お礼
有り難うございました。 >スクロールバーとウインドウのサイズはいじれるようにしておく方が良いと思います。 おっしゃる通りですよね。 不親切な作りを反省しています。
- yambejp
- ベストアンサー率51% (3827/7415)
ご要望の要件を実現することは不可能です。 ブラウザやユーザー環境によって文字のサイズや、余白のとりかたは まちまちですから、テキストの分量をもとにウィンドウの高さを確定 させることはできません。 また外部ファイル化は今回の件にはあまり関係なさそうです。
補足
ウィンドウの高さは、こちらで入力して決めています。
補足
有り難うございます!できました☆ ウィンドウ名を付ける意味も今回初めて知り、とても勉強になりました。 でもサイズ指定は、これからはあまり意味がなくなるんですね; 差し支えなければ追加でお伺いしたいのですが、ポップアップで開くウィンドウにリンクしているページが、異なるフォルダに分散している為、URLでなくローカルパス(?)で記述すると、3種類用意しなければならなくなりました。 具体的には外部ファイルを function winopen1(){ window.open('フォルダ名','ウィンドウ名','width=xxx,height=yyy,scrollbars=yes,resizable=yes'); } function winopen2(){ window.open('../フォルダ名','ウィンドウ名','width=xxx,height=yyy,scrollbars=yes,resizable=yes'); } function winopen3(){ window.open('../../フォルダ名','ウィンドウ名','width=xxx,height=yyy,scrollbars=yes,resizable=yes'); } として、HTML内で3つのうちどれにリンクするか指定しました。 サイト内リンクはローカルで書く事にしているのでこの様にしたのですが、こんなやり方で、正しかったのでしょうか? それともフォルダ名でなくURLで書いた方が良かったのでしょうか?