特定のページに飛ばす場合にのみ別ウィンドウを開かせるようにするにはどうすればよいのでしょうか?
下記は 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>
以下ではいかがでしょうか?
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>
<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>
の部分はこのままでよいのでしょうか?
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」などの部分は不要なのですが、実際にどこを書き換えるのでしょう?
以下ではいかがでしょうか?
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さま、皆さまのお陰でようやくお風呂に入れます。
本当に助かりました。
ありがとうございます!
なんだか拍子抜けするほどうまくいきました。
talepandaさま、llusallさま、nattowさま、皆さまのお陰でようやくお風呂に入れます。
本当に助かりました。