WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:チェックボックスを使用した新ウィンドウ

0:[投稿] まどか [MAIL] [2005/03/08 18:41 ][環境:WIN2000 わかりません]

早速ですがお願いします。
縦に3つに分けたフレームを使用していて、リンクはJava Scriptで行っています。通常は上から2つめのフレームのリンクを上から3つめに反映させていますが、2つめのフレーム内でチェックボックスにチェックすることにより3つめに反映させていた内容を新ウィンドウで表示したいのです。リンクをJava Scriptで行っているので、onclickは使わないやり方が良いです。
よろしくお願いします。


1:[関連] まどか [2005/03/08 18:53 ]

すいません、2つ目のフレームのリンクはすべてボタンです。


2:[回答] 敬 [MAIL] [URL] [2005/03/08 20:17 ]

単にcheckedを確認して分岐させるだけでは?


3:[保留] まどか [2005/03/09 01:01 ]

それはわかってはいたのですが、表記が…
もう少し詳しく説明いただけると幸いです。


4:[回答] [2005/03/09 02:45 ]

>>3
もう少し「何処らへんが分らないのか」説明いただけると幸いです。

ボタンをクリックしたときに、チェック済みかどうかif else文で判定して、
window.parent.frames[2].location.href とか window.open() とかで開くだけです。

基礎的な事なので調べれば、直ぐにわかります。

○ forms と elements
 http://www.axis.t.u-tokyo.ac.jp/~shunak/ecmascript/forms.html
○ self/top/parent/frames
 http://www.axis.t.u-tokyo.ac.jp/~shunak/ecmascript/self.html
○ window オブジェクト
 http://www.axis.t.u-tokyo.ac.jp/~shunak/ecmascript/window.html


5:[保留] まどか [2005/03/09 10:43 ]

タグを表記したほうが良いようなので・・・

function SelectKind(value){
var MiddleRef;
var Frame1Ref;
var TopFrame;

Frame1Ref = "TstResult.html";
if (value == 1) { // MS中心
   TopFrame = "TstMs.html";
} else if (value == 2) { // TTR試験
   TopFrame = "TstMtt.html";
} else if (value == 3) { // MS広域
   TopFrame = "TstUct.html";
//} else if (value == 4) { // ACT
//  TopFrame = "TstImage4.html";
} else {
   return;
}

// 新しいウィンドウで指定ページを開く
if (document.getElementById("NP_SEL").checked == true) {
   var WO1;
   var TopRef = "TstImage";
   WO1 = window.open(TopRef+value +".html", '_blank');
}
// 現在のウィンドウで指定ページを開く
else {
   top.location.href = TopFrame;
   top.middle.location.href = TopFrame;
   top.frame1.location.href = Frame1Ref;
}
}

HTML内でのリンクは
<INPUT type="button" name="BTN_TST_ACT" value="ACT" class="button" onclick="parent.frame03.location.href='./../../test/imt/TstImage15-.html'">
このようにしていて、チェックボックスは、
<INPUT type="checkbox" name="CBTN_NEW_WINDOW" value="1" id="NP_SEL">
このようにしています。java script内の表記がおかしいのだと思うのでよろしくお願いします。ほかのひとの途中までつくったものなので、余計に訳がわからないのです。


6:[回答] [2005/03/09 12:47 ]

>タグを表記したほうが良いようなので・・・

JavaScript の内容は「タグ」とは呼びませんので、お間違いなく。

>ほかのひとの途中までつくったものなので、余計に訳がわからないのです。

基礎から学んでもらおうと思って URL を提示したわけですが……
基礎的なことも分らないままスクリプトを書き始めないでください。

とりあえずソースの全体例を適当に載せておきますが。
(細切れで解説していても埒が明かないので。)
あとはご自分で解読してカスタマイズしてください。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang="ja">
<head>
 <meta http-equiv="Content-Type" content="text/html">
 <title>frameset page</title>
</head>
<frameset rows="10%,10%,80%">
 <frame src="top.html" name="top">
 <frame src="mid.html" name="middle">
 <frame src="bot.html" name="bottom">
</frameset>
</html>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
 <meta http-equiv="Content-Type" content="text/html">
 <meta http-equiv="Content-Script-Type" content="text/javascript">
 <title>middle page</title>
 <script type="text/javascript">
 function win_open(name, url)
 {
   // 新しいウィンドウで指定ページを開く
   if (document.getElementById("NP_SEL").checked)
     window.open(url, '_blank');
   // 現在のウィンドウで指定ページを開く
   else parent.frames[name].location.href = url;
 }
 </script>
</head>
<body>
<label for="NP_SEL"><input type="checkbox" id="NP_SEL">新しいウィンドウで開く</label>
<input type="button" value="ACT1" onclick="win_open('bottom','TstImage15-1.html')">
<input type="button" value="ACT2" onclick="win_open('bottom','TstImage15-2.html')">
</body>
</html>


7:[完了] まどか [2005/03/09 13:41 ]

ありがとうございました!出来ました!
今回余り時間がないということで頼りっきりになってしまいましたが、少しずつ勉強していきたいと思います。
本当にありがとうございました!

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World