人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Javascript に関する質問です。HTML にプルダウンメニューを設置し各ページに飛ばす際に、
特定のページに飛ばす場合にのみ別ウィンドウを開かせるようにするにはどうすればよいのでしょうか?

下記は Dreamweaver MX がはき出した Javascript です。
<option value= の中の、外部リンクとなっている「Hoge+」の場合だけ、別ウィンドウにしたいのです。
当方 Javascript に関してはほとんど素人です。どこに何を、どう書き換えてやればいいのか、どうか教えてください。

【Javascript】
<script language="JavaScript" type="text/JavaScript">
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
</script>

【HTML側】
<select onchange="MM_jumpMenu('parent',this,0)" name=menu1>
<option selected>-- Select --</option>
<option value="hoge1.html">Hoge1</option>
<option value="hoge2.html">Hoge2</option>
<option value="hoge3.html">Hoge3</option>
<option value="http://www.hoge.jp/hoge.html">Hoge+</option>
<option value="hoge4.html">Hoge4</option>
</select>

●質問者: occapie
●カテゴリ:インターネット ウェブ制作
✍キーワード:Dreamweaver e+ G+ hoge HTML
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● talepanda
●50ポイント
<script language="JavaScript" type="text/JavaScript">
function MM_jumpMenu(targ,selObj,restore){ //v3.0
if(selObj.options[selObj.selectedIndex].innerHTML=="Hoge+")
window.open(selObj.options[selObj.selectedIndex].value);
else
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
</script>
◎質問者からの返答

ありがとうございます。

早速試してみましたが、うまくいきません。(同一ウィンドウになってしまいます)

<select onchange="MM_jumpMenu('parent',this,0)" name=menu1>

の部分はこのままでよいのでしょうか?


2 ● llusall
●50ポイント

Hoge+の判断は、

selObj.options[selObj.selectedIndex].innerText

でおこないます。

新しいウィンドウは、window.openで行います。

参考 http://www.tohoho-web.com/js/window.htm#open


<script language="JavaScript" type="text/JavaScript">
function MM_jumpMenu(targ,selObj,restore){
 if (selObj.options[selObj.selectedIndex].innerText=="Hoge+"){
 window.open(selObj.options[selObj.selectedIndex].value,"sample", "width=320, height=240,scrollbars=no,location=no, menubar=no,left=10,top=30");
 }else{
 eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
 }
 if (restore) selObj.selectedIndex=0;
}
</script>
◎質問者からの返答

ありがとうございます。

とほほは見てみたのですが、自分でいじる部分がサッパリで…。

ちなみに「width」や「scrollbars」などの部分は不要なのですが、実際にどこを書き換えるのでしょう?


3 ● nattow
●50ポイント ベストアンサー

以下ではいかがでしょうか?

1番の方の回答とほぼ同様ですが、IE のみでしか使えない(と思う)innerHTML を使わずに記述しています。

<script language="JavaScript" type="text/JavaScript">
function MM_jumpMenu(targ,selObj,restore){ //v3.0
 if(selObj.options[selObj.selectedIndex].text=="Hoge+"){
 window.open(selObj.options[selObj.selectedIndex].value);
 }else{
 eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
 }
 if (restore) selObj.selectedIndex=0;
}
</script>
◎質問者からの返答

ありがとうございます!

なんだか拍子抜けするほどうまくいきました。

talepandaさま、llusallさま、nattowさま、皆さまのお陰でようやくお風呂に入れます。

本当に助かりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ