- ベストアンサー
Dreamweaverのジャンプメニューを別ウィンドウで表示する方法
- Dreamweaverのジャンプメニューを別ウィンドウで表示する方法を教えてください。
- 現在、Dreamweaverのビヘイビアでジャンプメニューを作成していますが、別ウィンドウで表示する方法がわかりません。
- ネット検索しても同じ問題を抱える人が多く、解決策が見つかりません。どなたか教えていただけないでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ボタンのonclickもセレクトのonchangeもトリガーとしては同じもんですよ たとえばこんなかんじ <select name="jumpMenu1" id="jumpMenu1" onchange="if(this.selectedIndex==0) return false;MM_openBrWindow(this.value,'new','width=600,height=600')"> <option selected="selected">選択します</option> <option value="http://yahoo.co.jp">yahoo</option> <option value="http://google.co.jp">google</option> </select> 前回も書いたとおり、window.openで第1引数にURLを、第2引数にウィンドウの 名前を入れれば済む話しでしょう・・・
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
>this.valueでoptionのvalue値を呼んでくるのですか? セレクトメニューの値を得るには厳密には this.options[this.selectedIndex].value としなくてはいけません。(すごく古いブラウザはそうでした) ただIEもネスケもダイブ前のバージョンから this.value で拾えるようになっていますので、煩雑さを回避するためにthis.valueを オススメします。
お礼
ほんとにどうもありがとうございます! その後、サブウインドウを開くたびに前面に出したくて、いろいろ調べてスクリプトに少しの追加でできるようになりました! プログラムってまだまだ分けわからないですが、思ったことができると楽しいですね♪ ありがとうございました。
- yambejp
- ベストアンサー率51% (3827/7415)
別ウィンドを開くときに同じウィンドを再利用するには大きく2つあります。 一つはwindow.openするときにオブジェクトでうけて、そのオブジェクトの location.hrefを操作する方法。 こんな感じでやります。 <script> var n; function openyahoo(){ if(!n) n=window.open(); n.location.href="http://www.yahoo.co.jp" } function opengoogle(){ if(!n) n=window.open(); n.location.href="http://www.google.co.jp" } </script> <input type="button" value="yahoo" onClick="openyahoo()"> <input type="button" value="google" onClick="opengoogle()"> もう一つはwindow.openの第2引数に同じ名前を指定する方法。 <script> function openyahoo(){ window.open("http://www.yahoo.co.jp","nWin"); } function opengoogle(){ window.open("http://www.google.co.jp","nWin"); } </script> <input type="button" value="yahoo" onClick="openyahoo()"> <input type="button" value="google" onClick="opengoogle()"> <a href="http://www.baidu.jp/" target="nWin">baidu</a> nWinと名前で開いていますのでアンカーからターゲットを指定して 開いた場合と同じ処理になります。
補足
お返事いただきありがとうございます。 ですが、私の思うものとは少し違うのです。 教えていただいたものはどちらもボタンですが、私の希望はselectメニューを使ったジャンプメニューです。説明不足ですみません。 質問後も参考にしたサイトとは別に、Dreamweaver CS3で自分なりに試行錯誤したのですが、自分の引き出しが少ないのでどうにも・・・ とりあえず、つまづいたところまでみてください。 <script type="text/javascript"> <!-- function MM_jumpMenu(targ,selObj,restore){ //v3.0 eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'"); if (restore) selObj.selectedIndex=0; } function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); } </script> ----------------------- <form name="form1" id="form1"> <p> <select name="jumpMenu1" id="jumpMenu1" onchange="MM_jumpMenu(MM_openBrWindow(http://jp.msn.com/','new','width=600,height=600'),this,1)"> <option selected="selected">選択します</option> <option value="http://yahoo.co.jp">aaaa</option> <option value="http://google.co.jp">bbb</option> </select> </p> </form> これはDreamweaverの「ジャンプメニュー」と「ブラウザウインドウを開く」というスクリプトを強引に合体させたものですが、これですとhttp://jp.msn.com/にジャンプします。theURLに指定しているので自分でもこれは当然の結果とは思いますが、これ以上の改良ができなくて苦しんでいます。 theURLに当たる'http://jp.msn.com/'と記述した部分をなんとかしたいのですが・・・ <option>で選んだページを別ウインドウで、しかもひとつもウインドウで表示したいのです。 最近よくみかけるAjaxのサンプルも調べましたが私の希望するものはなく・・・ この状態から変更していくのは考え違いですか? どうにかならないでしょうか? よろしくお願いします。
補足
すごいです、できました! 例がyahooとgoogleの数だけfunctionを書かなきゃならないのか?と思ったのですが、やってみると欲しかったものができました! お礼を、と思ったのですがひとつ質問させてください。 これってthis.valueでoptionのvalue値を呼んでくるのですか?