• ベストアンサー

下記HTML(java?)だと,ホップアップが1つしか出来ません。

続けざまの質問になりますがご返答宜しくお願いいたします。 ちなみに,HTMLタグのように,target=newっていうのを入れてみたのですがどうも違うようですね。 また,この開かれた方のHP(自分のHPじゃないので,hopup1.htmのソースは触れません),hopup1.htm を自動的に閉じてくれる方法はありませんか? <html> <head> <script type="text/javascript"><!-- function popwin(){ pw=window.open("hopup1.html","pop","width=10, height=10, top=0, left=0"); } //--></script> </head> <body> <input type="button" value="login" href="#" onClick="popwin()"> </body> <html> <head> <script type="text/javascript"><!-- function popwin(){ pw=window.open("hopup2.html","pop","width=10, height=10, top=0, left=40","new"); } //--></script> </head> <body> <input type="button" value="login" href="#" onClick="popwin()"> </body>

  • HTML
  • 回答数4
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
noname#199778
noname#199778
回答No.4

まず、二つのHTMLソースが並べられていますが、これは一つのファイルとして提示されているのですね? この記述だと、正常に反映されない可能性があります。 二つのページソースをまとめたほうが良いでしょう。 その点については後ほど… まず、ウィンドウが複数開かない点について。 window.open()は、指定されたウィンドウ名を持つウィンドウに対して、指定されたページを読み出すようになっています。 例にあるソースであれば、ウィンドウ名としてpopという値が渡されていますので、window.open("***.htm","pop")という形で新しいウィンドウを開こうとしても、前に同じ名前で開かれたウィンドウが閉じていない限りは思うように動作しません。 新しいウィンドウを開きたい場合は、これを別の名前に設定する必要があります。 なお、常に新しいウィンドウで開かせたい場合は、ウィンドウ名として"pop"の代わりに"_blank"と指定してみて下さい。 また、開いたウィンドウを、ウィンドウを開いた側から閉じることも可能です。 その例を挙げておきます。 <html> <head> <script type="text/javascript"><!-- function popwin(){ pw=window.open("hopup1.html","_blank","width=10, height=10, top=0, left=0"); setTimeout("pw.window.close()",10000); /* 10000ミリ秒後(10秒後)に、pwというIDで開いたウィンドウを閉じます。 */ } //--></script> </head> <body> <input type="button" value="login" onClick="popwin()"> </body> <html> こうすれば、ウィンドウを開いた側で、開いたウィンドウを閉じることができます。 ただし、ここで書いた例では、ウィンドウを開いてからロードが完了するまでの時間を待ってくれないので、回線状況によってはページがロードされる前にウィンドウが閉じられる可能性もあります。 推測ですが、質問分にあるソースをすっきりと書き直すのであれば、 <html> <head> <script type="text/javascript"><!-- function popwin1(){ pw=window.open("hopup1.html","_blank","width=10, height=10, top=0, left=0"); setTimeout("pw.window.close()",10000); } function popwin2(){ pw2=window.open("hopup2.html","pop2","width=10, height=10, top=0, left=40"); } //--></script> </head> <body> <input type="button" value="login" onClick="popwin1()"><br> <input type="button" value="login" onClick="popwin2()"> </body> <html> このようにしてみてはいかがでしょうか。 なお、サブウィンドウを呼び出した側のウィンドウは、JavaScriptで閉じようとすると警告のダイアログが出るようになっています。 これはブラウザの仕様ですので、回避できないと思われます。 長々と失礼しました。 見当違いでしたら、ごめんなさい。

flower_pink
質問者

お礼

ほんとに,ここに質問してよかったです。お勉強させていただいた上に,見事に解決しました。ありがとうございました。

その他の回答 (3)

  • basil
  • ベストアンサー率35% (148/420)
回答No.3

下の補足を見ました。 私もけっこう勘違いしていたようです。 要求はこういうことですかね? <html> <head> <script type="text/javascript"> <!-- function popwin(winurl,wname){ window.open(winurl,wname,"width=10, height=10, top=0, left=0"); } //--> </script> </head> <body> <form> <input type="button" value="login1" onClick="popwin('hopup1.html','pop1');"> <input type="button" value="login2" onClick="popwin('hopup2.html','pop2');"> </form> </body> </html>

flower_pink
質問者

お礼

わざわざ追伸を書いていただきありがとうございました。とても役に立ちました。

  • basil
  • ベストアンサー率35% (148/420)
回答No.2

うーむ。かなり大変なことになってますね、ソース。 まず、ひとつのHTMLのなかになぜか<body>~</body>が2つもあります。これはまずいです。<html>~</html>は1.5コ?。これもかなりまずいです。(まずいと言っても、なにかが壊れたりする訳じゃないんですが) まず HTMLは全体をひとつの<html>~</html>で囲みましょう。 次に、そのなかに<head>~</head>と<body>~</body>が来ます。通常<script>~</script>は<head>の中に入れます。さらに<input>タグは<form>~</form>タグに入れなければなりません。さらに、JavaScriptで同じ名前の関数(function)を宣言することはできません。 以上をふまえて、ただしく書き直すと… おっと、、ここまで書いて気付きましたが、 上記のソースはコピーミスで、2回だぶってペーストしてしまったもののようなきがします。 ということで改めて質問を良く読むと… つまりポップアップウィンドーをクリックのたびにあたらしく重複して開きたいってことですね。 了解です。 改めて解説しますと、 open()の2番目の引数として"pop"が指定されていますがこれはウィンドーネームであり、同一の場合は同じウィンドーだと認識されてしまいます。 そこでここは変えてしまうとよいです。 これをふまえてソースはこうなります。 (いろんな方法があるのでこれがベストかどうかは分かりません) <html> <head> <script type="text/javascript"> <!-- var wn = 0; function popwin(wn){ wn++; alert(wn); pw=window.open("hopup.html","win"+wn,"width=10, height=10, top=0, left=0"); return wn; } //--> </script> </head> <body> <form> <input type="button" value="login" href="#" onClick="wn = popwin(wn)"> </form> </body> </html>

flower_pink
質問者

補足

わざわざ訂正したソースを載せていただきありがとうございます。 紛らわしHPと,数々のエラーすいません。超初心者ということで見逃してやってください。 本題ですが,やりたいことは,2つのホームページを小さく左上に別々に2つホップアップさせたいと思っています。

  • the845t
  • ベストアンサー率33% (246/743)
回答No.1

ちなみにJAVAではなくて、JavaScript。別物です。 自動で閉じると言うと、秒で判断するのですか? また、新しいウィンドウはhopup2のようですが、 hopup1はどれでしょう? あなたが利用する環境で、ポップアップウィンドウが邪魔だというのであれば、 自動的に閉じるツールというのはあります。

flower_pink
質問者

補足

>JAVAではなくて、JavaScript。別物です。 指摘していただいてありがとうございます。なんとなく違うということは聞いていたのですが,やはりちがうみたいですね。 で,本題なのですが, 秒単位で指定します。 一応,貼り付けたソースをIEで開くと,2つボタンがあって,始めのボタンがhopup1で,2番目のボタンがhopup2になっていると思います。 タグはほんの少し分かるのですが,javascriptは全く分かりません。ご教授宜しくお願いいたします。

関連するQ&A

  • HPボタンの長さが異なる。

    下のボタンが マックの「IE4.5」「IE5.0」「ネスケ4.7」だとちゃんと奇麗に中央に表示されますが、 Windows「IE4.5」「IE5.0」はボタンの長さが異なり ガタガタになります。 windowsでも奇麗に並べるにはどうしたらいいのでしょうか? よろしくご指導お願いいたします。 テストでアップしてあるURLですのでご確認してください。 http://watn.jp/test/ <HTML> <HEAD> <TITLE>++++</TITLE> </HEAD> <!------------------- 中身-------------------> <center> 下のボタンがマックの「IE4.5」「IE5.0」「ネスケ4.7」だと<br> ちゃんと中央に表示されますが、Windows「IE4.5」「IE5.0」は<br> ボタンの長さが異なりガタガタになります。 <FORM> <INPUT TYPE="button" VALUE=" ●●・・◇◇◇   " onClick="window.location.href='kituke.html'"><br> <INPUT TYPE="button" VALUE="   ・・◇◇◇◇  " onClick="window.location.href='sadou.html'"><br> <INPUT TYPE="button" VALUE="   ・・◇◇◇◇◇ " onClick="window.location.href='buyou.html'"><br> <INPUT TYPE="button" VALUE=" ●●・・◇◇◇   " onClick="window.location.href='ivent.html'"><br> <INPUT TYPE="button" VALUE="   ・・◇◇◇◇  " onClick="window.location.href='tenjikai.html'"><br> <INPUT TYPE="button" VALUE=" ◇◇◇       " onClick="window.location.href='butai.html'"><br> <INPUT TYPE="button" VALUE=" ◇◇◇◇      " onClick="window.location.href='honten.html'"><br> <INPUT TYPE="button" VALUE=" ◇◇◇◇◇     " onClick="window.location.href='yono.html'"><br> </FORM> </center> </BODY> </HTML>

  • java scriptによるポップアップウインドウについて

    <head> <SCRIPT language="JavaScript"> <!-- function OpenWin1(){ win=window.open("window1.html","new","width=300,height=100"); } // --> <!-- function OpenWin2(){ win=window.open("window2.html","new","width=500,height=200"); } // --> </SCRIPT> </head> <body bgcolor="#FFFFFF" text="#000000"> <A href="javascript:OpenWin1()">1.ウィンドウを開く</A> <A href="javascript:OpenWin2()">2.ウィンドウを開く</A> </body> 「1.ウィンドウを開く」をクリックしてwindow1.htmlのポップアップウインドウを表示させたまま、「2.ウィンドウを開く」をクリックすると、最初のウインドウサイズを保持したまま、新しいウインドウが開いてしまうのですが、これをうまく処理する方法はないのでしょうか? どなたかアドバイス頂けると嬉しいです。 よろしくお願い致します。

  • window.open()で幅指定の際、ウインドウサイズが大きすぎる

    以下のようなwindows.openに関するプログラムを作成し、実際に 子ウインドウを開いてみると、表示されるウインドウの横幅が、画面いっぱいよりわずかに大きくなってしまいます(画面解像度は1024*768) width=1024と記述しているので、横幅はぴったり画面サイズと同じ だと思っていたのですが、どこが間違えているのでしょうか? 不勉強で恐縮ですが、ご教示いただきたくお願いいたします。 <HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> function dispw() { win01=window.open("h ttp://www .goo.ne.jp/","MENU","width=1024,height=680,top=0,left=0,status=yes"); } </SCRIPT> </HEAD> <BODY> <FORM> <INPUT TYPE="button" VALUE="子ウインドウを開く" onClick="dispw()"> </FORM> </BODY> </HTML>

  • ポップアップウインド

    下記のスクリプトでポップアップウインド内に『ポップアップを閉じるためのスイッチ』を設置したいのです。  -----よろしくお願いします。----- <HTML> <HEAD> <TITLE>createPopup</TITLE> <SCRIPT> <!-- var oPopup = window.createPopup(); oPopup.document.body.onclick = fOnclick; oPopup.document.body.oncontextmenu = fOncontextmenu; function fOnclick() { var oSrcElement = oPopup.document.parentWindow.event.srcElement; if (oSrcElement.tagName == 'A') { window.navigate(oSrcElement.href); } } function fOncontextmenu() { return false; } function fShow() { oPopup.document.body.style.background = '#ffffee'; oPopup.document.body.style.border = 'outset 1px'; oPopup.document.body.style.padding = '1px'; oPopup.document.body.innerHTML = oSpan.innerHTML; oPopup.show('100', '30','200','200',document.body); } function fHide() { oPopup.hide(); } //--> </SCRIPT> </HEAD> <BODY onload="fShow()"><SPAN style="display:none" id="oSpan" onclick="fHide();"><A href="http://www.w3.org">createPopup</A><BR> <A href="http://www.google.co.jp">show</A><BR> <A href="http://www.yahoo.co.jp">hide</A><BR> <A href="http://java.sun.com">isOpen</A><BR> </SPAN><INPUT type="button" value="show" onclick="fShow()"><INPUT type="button" value="hide" onclick="fHide()"> </BODY> </HTML>

  • 特定の時間帯だけ有効にする

    以下のスクリプトはウィンドウを同時に2つ開くものですが、20~23時の時間帯だけスクリプトを有効にしたいです。 どのように記述すればできますか? <SCRIPT TYPE="text/javascript"> <!-- function WindowOpen(){ window.open("ttp://192.168.0.12/cgi-bin/music/","window","toolbar=no, height=200, width=200"); window.focus(); } //--> </SCRIPT> </HEAD> <BODY> <A HREF=ttp://192.168.0.12/ onClick="WindowOpen();window.focus();">トップページへ</A>

  • ポップアップブロック付きのブラウザ(IE8)で、window.open

    ポップアップブロック付きのブラウザ(IE8)で、window.openをつかって小窓を二つ出したい。 表題の通り、ポップアップブロックに引っかかってしまい、2つの小窓が出せません。 現状は、1つだけ小窓が立ち上がる状態です。 理想のタイミングは、エンターページをクリックすると、window.openが実行され 2つの小窓が立ち上がるというのが理想です。 以下に現在のスクリプトをコピペ致します。 <script language="JavaScript"> moveTo(0,0); resizeTo(screen.width,screen.height); var g_pop01; var g_pop02; function open_pop(){ var w_Width1 = 280 var w_Width2 = 567 var w_Height1 = 540 var w_Height2 = 540 var w_space = 22 var x1 = (screen.availWidth - w_Width1 - w_Width2 - w_space)/2; var x2 = x1 + w_Width1 + w_space var y1 = (screen.availHeight - w_Height1)/2; var y2 = (screen.availHeight - w_Height2)/2; g_pop01 = window.open("left2.swf?nowX="+x1+"&nowY="+y1,"flash_pop1",'toolbar=0,menubar=0,scrollbars=no,resizable=no,width='+w_Width1+',height='+w_Height1+',left='+x1+',top='+y1); g_pop02 = window.open("right2.swf?nowX="+x2+"&nowY="+y2+"&guideX="+x1+"&guideY="+y1,"flash_pop2",'toolbar=0,menubar=0,scrollbars=no,resizable=no,width='+w_Width2+',height='+w_Height2+',left='+x2+',top='+y2); } </script> </head> <body topmargin=0 leftmargin=0 marginwidth=0 marginheight=0 scroll="no" bgcolor="#000000"> <table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0"> <form name="frm2"> <input type="Hidden" name="fov" value="0"> </form> <tr> <td align="center" valign="middle"> <table width="484" height="260" border="0"> <tr> <td><img src="img/logo_484x260_2.png" border="0" usemap="#Map" LANGUAGE=javascript onClick="open_pop()"> <map name="Map"> <area shape="rect" coords="4,2,480,254" href="index.html"> </map></td> </tr> </table> </td> </tr> </table> </body> </html>

  • Mozillaでステイタスバーへの表示

    IE6では、次のhtml文(簡略)が思ったとおりに実行されますが、Mozillaでは、実行されません。特に、ステイタスバーへの表示(ここが1番とか、ここが2番)がされません。Mozillaで表示させるには、どうすれば良いのでしょうか? お教えください。 <head> <script language="JavaScript"> function koko1() {window.open("http://koko1.co.jp","","WIDTH=950,HEIGHT=650,status,scrollbars");} function koko2() {window.open("http://koko2.co.jp","","WIDTH=950,HEIGHT=650,status,scrollbars");} function hint(n){status = n;} </script> </head> <body> 選んでください。 <input type="button" VALUE="K1" onClick="koko1()" onmouseover="hint('ここが1番')";> <input type="button" VALUE="K2" onClick="koko2()" onmouseover="hint('ここが2番')";> <body> ブラウザで実行⇒ボタンK1にマウスを当てると、ステイタスバーにここが1番と表示し、押すとhttp://koko1.co.jpが新規に開きます。 ボタンK2も同じ様。です。

  • Javascript ポップアップウィンドウについて

    初歩的なことだとは思いますが、教えてください。 ポップアップウィンドウで画像を表示するためのリンクを以下のように記述して使っていますが、 ポップアップウィンドウ内に余白が出ます。(ウインドウ枠と画像の間) ウインドウの左上(0,0)の位置に画像を持ってくるにはどうしたらいいのでしょうか。 調べたものをいくつか試してみましたが、どれもうまくいきませんでした。 よろしくお願いします。 -------------------- ■<head>内 <script type="text/javascript"> <!-- function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); } //--> </script> ■<body>内 <a href="img/test.gif"><img alt="" src="~.gif" onclick="MM_openBrWindow('img/test.gif','test','scrollbars=yes,width=950,height=400')" /> </a> ------------------------- もしくは、 ■<head>内 <script type="text/javascript"> <!-- function WindowOpen_01(){ window.open('test.gif','test','scrollbars=yes,width=1150,height=350,left=0,top=0'); } //--> </script> ■<body>内 <a href="javascript:WindowOpen_01()"><img src="img/table_off.gif" alt="" width="320" height="55" class="mar_t_10" onmouseover="this.src='img/table_ban_on.gif'" onmouseout="this.src='img/table_off.gif'" /></a>

  • javaでサムネイルをクリックして別窓で表示したいのですが…

    はじめまして!たつやです。 現在OSはXPでビルダー9を利用して画像アルバムのホームページを作成してますが、サムネイルと元画像はhtmlファイルとして用意し、それぞれのサムネイルをクリックするとタイトルバーなどが無い別画面で表示したいと考えております。別画面はクリックした画像の数だけ開くようにしたいとも考えています。 ヘッド部には <script Language="JavaScript"><!-- function nwin1(){ sub=window.open("jpeg/001.html","subwin1","width=480,height=360,scrollbars=no,location=no,menubar=no,left=10,top=30");} function nwin2(){ sub=window.open("jpeg/002.html","subwin2","width=480,height=360,scrollbars=no,location=no,menubar=no,left=10,top=30");} } // --></script> と記入して、ボディー部には <A href="jpeg/001.html" onclick="nwin1()"><IMG src="jpeg/s001.jpg" width="90" height="68" border="0"></A> <A href="jpeg/002.html" onclick="nwin2()"><IMG src="jpeg/s002.jpg" width="90" height="68" border="0"></A> と記載下のですが、upすると、 auto;blank と出てうまくいきません。 どのように対処すればよいでしょうか? 取り急ぎご回答をお待ちしています。

  • javascriptで別ウインドウを開いたのですが背景設置が上手くいきません。

    いつもお世話になっております。 JavaScriptを使用し別ウインドウで画像を表示させているのですが、 そのウインドウの背景が上手く設定できません。 どのように編集すればよいでしょうか? 現在の状態は以下の通りです。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>aaa</title> <script language="javascript"> <!-- function OpenWindow(){ var width = document.images['00'].width + 228; var height = document.images['00'].height +254; subWin = window.open("","subWin","status=no,menubar=no,toolbar=no,scrollbars=no,resizable=yes,screenX=0,screenY=0,width=" + width + ",height=" + height + '"'); with(subWin.document) { open(); write("<html><head><title>sample1</title></head>"); write("<body onload='window.resizeTo( document.images[00].width + 40,document.images[00].height + 120)'><div align='center'><img id='00' src='b/1b.jpg'><br>"); write("<button type='button' onclick='window.close()'>閉じる</button></body></div></html>"); close(); } } --> </script></head> 宜しくお願いします。

専門家に質問してみよう