WEB相談室

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

タイトル:複数のサブウィンドウを開きたい!

akko-3 [MAIL] [URL] [WriteDate : Mon Apr 23 17:26:41 2001]

テーブルの表組の中に書き込んだ、複数の名前にそれぞれリンクを貼って、
その名前をクリックするとサイズが指定されたサブウィンドウが
開いて、その人のコメントが読めるようにしたい(closeボタン付きで)んです。

本などで読むと、画像に貼って…は出来るようですが
テキストにリンクを貼って…というのは、分りませんでした。
まず上記のような技は可能なんでしょうか? 
是非ぜひ宜しくご指導ください! お願いします!!


ドラ [WriteDate : Mon Apr 23 17:48:02 2001]

テキストにリンクを貼って?????

<A HREF="*****.html">あいさつ</A>

とかということですか?

#画像にリンクを貼る方が使い方として高度なのですが(^^;;
#というか、リンクって普通テキストに貼る(?)ものなのです
#けどね(^^;;; これもHP作成ソフトの影響かな?


akko-3 [WriteDate : Mon Apr 23 19:41:39 2001]

><A HREF="*****.html">あいさつ</A>
全然違います…
説明が通じていないようですね〜(^_^;)
ん〜、どう説明したら上手く状況が伝わるかな?

HP作成ソフトは使ったコトないですよ。
大変古典的ですが全てタグで打ってます。


じゃすみん [WriteDate : Mon Apr 23 20:27:39 2001]

> 本などで読むと、画像に貼って…は出来るようですが
これの具体的なソースサンプルって本に書いてなかった?
その<img 〜>の部分を適当な文字に置き換えたら出来るよ。

<A HREF="*****.html" target="〜">あいさつ</A>
targetの中を変えれば複数立ち上がるし、
同じにすれば別ブラウザは一つで表示内容が変わっていくだけになる。

あと、閉じるボタンはこんな感じ。
<A href="JavaScript:self.close;">閉じる</A>

#ちなみにドラさんの疑問は最もだと思う。


ドラ [WriteDate : Mon Apr 23 22:25:23 2001]

ページをゆっくりたどる時間が無かったので内容まで見て無かった
のですが、他のところでしっかり普通のリンク(アンカー+テキスト)
が使われてましたね(^^;;;TOPに全然なかったので、間違って
しまいましたm(_ _)m陳謝

ジャスミンさんに補足ですが、target="_blank"ですね。
_blank 名前の無い新しいウインドウでリンク先を表示

あと、self.close; はself.close(); じゃないですか?
「()」無しでもいけるのかな?あえて自己確認はしないですが・・


わごな [URL] [WriteDate : Mon Apr 23 23:20:01 2001]

サンプルはアンカーになってないのかな?

<IMG src="〜" OnClick="〜">
のOnClickの部分を、アンカーに移せば大丈夫かと思います
<A name="テキトー" OnClick="〜">なまえ</A>


akko-3 [WriteDate : Tue Apr 24 08:15:24 2001]

沢山の回答、有難うございます。
具体的なソースで相談した方が説明しやすいと思うので…
長くなりますが、こういう事なんです。
(大文字小文字の入り乱れはご容赦ください…)
こうなると、ソースがかなり複雑になるので、リンクを貼って
サブウィンドウに飛ばしたい数が増えると…混乱してくるので、
何かもっと簡単な方法はないでしょうか?と、いうご相談でした!

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
↓↓↓↓↓メインウィンドウ↓↓↓↓↓
<HTML>
<HEAD>
<TITLE></TITLE>

<SCRIPT LANGUAGE="JavaScript">
<!--
var HELPWin=null;
var HELPHref1="";
function HelpWinOpen(HELPHref1,WinNo,W,H){
HELPWin=window.open(HELPHref1,WinNo,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width='+W+',height='+H+'');
if(navigator.appVersion.charAt(0)==2){
HELPWin=window.open(HELPHref1,WinNo,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width='+W+',height='+H+'');}
if(navigator.appVersion.charAt(0)>=3){HELPWin.focus()}
};
<!---->                        
</SCRIPT>

</HEAD>
<BODY BGCOLOR=DAA520 TEXT=FFFFFF onLoad="resizeWindow()">
<CENTER>あいうえお<P><TABLE BORDER=3>
<TR><TD>
<A HREF="javascript:function voi(){};voi()"
 onClick="
 HELPHref1='D15HELP1.HTM';
 WinNo='HELP1';
 W=300;            
 H=250;              
 HelpWinOpen(HELPHref1,WinNo,W,H)">かきくけこ</A></TD>
<TD><A HREF="javascript:function voi(){};voi()"
 onClick="
 HELPHref1='D15HELP2.HTM';
 WinNo='HELP1';
 W=300;            
 H=250;              
 HelpWinOpen(HELPHref1,WinNo,W,H)">さしすけせそ</A></TD></TR>
</TABLE>
</BODY>
</HTML>

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
↓↓↓↓↓サブウィンドウ【かきくけこ】↓↓↓↓↓
<html>
<head>
<title>d15help1.htm</title>
<SCRIPT LANGUAGE="JavaScript">
<!--
function subWindow(){
window.open("komimi.html","window1","width=300","height=200");
}
//-->
</SCRIPT>
</head>

<BODY BGCOLOR=DAA520 TEXT=FFFFFF onLoad="resizeWindow()">
<form method="POST">
<CENTER> かきくけこ<P><TABLE BORDER=3>
<TD>説明文が入ります</TD>
</TABLE>
<hr width=90%><p>
<input type="button" value="Close" onclick="window.close()"><br><p>
</form>
</CENTER>
</BODY>
</HTML>
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
↓↓↓↓↓サブウィンドウ【さしすせそ】↓↓↓↓↓
<html>
<head>
<title>d15help2.htm</title>
<SCRIPT LANGUAGE="JavaScript">
<!--
function subWindow(){
window.open("komimi.html","window1","width=300","height=200");
}
//-->
</SCRIPT>
</head>

<BODY BGCOLOR=DAA520 TEXT=FFFFFF onLoad="resizeWindow()">
<form method="POST">
<CENTER> さしすせそ<P><TABLE BORDER=3>
<TD>説明文が入ります</TD>
</TABLE>
<hr width=90%><p>
<input type="button" value="Close" onclick="window.close()"><br><p>
</form>
</CENTER>
</BODY>
</HTML>


Nobu3 [MAIL] [URL] [WriteDate : Tue Apr 24 09:52:41 2001]

もしかして、関数の引数のことを勘違いしてるのかな?

引数は受け皿なので、同じ名前の変数に代入する必要はありません。
「かきくけこ」なら、
onclick="HelpWinOpen('D15HELP1.HTM','HELP1',300,250)"
でいいはずです。
大分見やすくなるはずですが…。

使ってるウィンドウの名前とかをソースに書いておくと、管理しやすくなるかもしれません。

# 日本語って難しいですね…。


じゃすみん [WriteDate : Tue Apr 24 10:29:29 2001]

>あと、self.close; はself.close(); じゃないですか?
あ、そーです。()ないとエラー出る。

>target="_blank"ですね。
そのリンクからは何度押しても一つしかウィンドウが出ないと考えたので、
任意のウィンドウ名のつもりだったけど。。。

引数名とか変数名とかいうのは値を入れる箱の名前だよ。
1: abc=0
2: document.write(abc);
3: document.write("abc");
例えば上のようなソースだったら、
1行目でabcという箱(変数)に0を入れている。
2行目ではabcという箱の中身を取り出しているので、
実行結果は「0」となる。
3行目は「"」がついているので、箱の名前じゃなくって
ただの文字列だと認識されて実行結果は「abc」ね。

そんなわけで関数は下のだけでよい。
function HelpWinOpen(HELPHref1,WinNo,W,H){
 HELPWin=window.open(HELPHref1,WinNo,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width='+W+',height='+H+'');
}

呼出し方法はこんな感じ。
<A HREF="javascript:vold(0);" onClick="HelpWinOpen('D15HELP1.HTM','HELP1',300,250);">かきくけこ</A>
<A HREF="javascript:vold(0);" onClick="HelpWinOpen('D15HELP2.HTM','HELP1',300,250);">さしすせそ</A>
この場合2つめの引数が同じ名前だから、「かきくけこ」をクリックして、
別ウィンドウを開いたまま「さしすせそ」をクリックすると、既に開いていたウィンドウの中身が書き換わる。
その時、メインのウィンドウの後ろに行っちゃうから、
HELPWin.focus();
を関数の中に追加しておいてもいいかも。


y [WriteDate : Tue Apr 24 10:37:51 2001]

<script language="javascript" type="text/javascript">
<!--
var win=null;
function NewWindow(mypage,myname,w,h,scroll,pos){
if(pos=="random"){LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}
if(pos=="center"){LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;}
else if((pos!="center" && pos!="random") || pos==null){LeftPosition=0;TopPosition=20}
settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no';
win=window.open(mypage,myname,settings);
if(win.focus){win.focus();}}
// -->
</script> </head>
<body>
<table border="1">
<tr>
<td><a href="aaa.html" onclick="NewWindow(this.href,'help','200','200','no','center');return false" onfocus="this.blur()">aaa</a></td>
<td><a href="bbb.html" onclick="NewWindow(this.href,'help','200','200','no','center');return false" onfocus="this.blur()">bbb</a></td>
</tr>
<tr>
<td><a href="ccc.html" onclick="NewWindow(this.href,'help','200','200','no','center');return false" onfocus="this.blur()">ccc</a></td>
<td><a href="ddd.html" onclick="NewWindow(this.href,'help','200','200','no','center');return false" onfocus="this.blur()">ddd</a></td>
</tr>
</table>


Nobu3 [MAIL] [URL] [WriteDate : Tue Apr 24 10:55:22 2001]

色々追加されてますが…。
ちなみに、HTMLの見やすさを優先するなら、ウィンドウの名前ごとにサブルーチンを作る方法もあります。
お好みでどうぞ。

function newHelpWindow(u){
   newWindow(u,'help',300,250);
}

function newOtherWindow(u){
   newWindow(u,'other',250,300);
}

function newWindow(HELPHref1,WinNo,W,H){
   HelpWinOpenの中身そのまま
}
...


ドラ [WriteDate : Tue Apr 24 11:32:23 2001]

ん? 確か最初は複数のページを開くだったような気が・・・(笑)
いつのまにか、HTMLの複雑化の回避に・・(^^;;;
テキストって、別ファイルでURLを管理って事だったのかな?

そういう事なら、JavaScript上に配列として持たせる方法もあります。
あと、小窓のサイズやステータスの有無なども、同じなら
最初から定義しておけば便利ですね。

<SCRIPT LANGAGE="JavaScript">
<!--

       URL = new Array();
       URL[0] = "aaa.html";
       URL[1] = "bbb.html";
       URL[2] = "ccc.html";

       KOUMOKU1 = "toolbar=0,location=0,directories=0,";
       KOUMOKU2 = "status=0,menubar=0,scrollbars=1,resizable=1,";
       KOUMOKU3 = "width=300,height=200";

function HelpWinOpen( i )
    
   HELPWin=window.open(URL[i],"HELP1",KOUMOKU1+KOUMOKU2+KOUMOKU3);

・・・・・・・

<A HREF="javascript:HelpWinOpen(0);">かきくけこ</A>
<A HREF="javascript:HelpWinOpen(1);">さしすせそ</A>

という感じに小窓のURLを配列にして、固定の内容で
あれば引数が数値のみになりすっきりしますね。
固定でない場合でも、URLと同じように配列にして
数値により内容を変えたり、if文で内容を変えたりすれば
すっきりしますよね。

こういう事かな(^^;;;?(いまいち自信無し)


akko-3 [WriteDate : Tue Apr 24 12:49:51 2001]

皆様、本当に沢山の回答有り難うございましたm(_ _)m
ご指導いただいた方法でチャレンジしてみます!

う…まく行かなかったら、また相談に参上いたしますので、
その時は宜しくお願いします(*^_^*)

本当に有難うございました♪

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]
ChaichanPAPA's World