CGIからCGIのサブウィンドウを開く方法

このQ&Aのポイント
  • CGIを利用してホームページを作成しています。帳票形式の一覧表の中のイメージをクリックするとCGIで作成したサブウィンドウが開きますが、処理が上手くいきません。
  • 現在、CGIを使用してホームページを作成しています。一覧表に表示されているイメージをクリックすると、CGIで作成したサブウィンドウが開くはずですが、エラーが発生してしまいます。
  • CGIを使ってホームページを作成しています。一覧表内のイメージをクリックすると、CGIで作成したサブウィンドウが開くようにしたいのですが、処理が正常に行われません。改善方法や他の良い方法があれば教えてください。
回答を見る
  • ベストアンサー

CGIからCGIのサブウィンドウ(?)をあける方法

CGIを利用してホームページを作成しています。 CGIで帳票形式の一覧表を作成し、その中のイメージをクリックすることによってサブウィンドウ(これもCGIで作成したものです)をあけようとしているのですが、知識が乏しいため、上手く処理できません。 ソース(抜粋の為アドレスは消してありますが絶対パスで書いてあるとして下さい) print "<TD><IMG src=~graph.gif onclick="window.open(~graph.cgi?code=$ID, graph,'width=400,height=400');"><BR></TD>\n"; これだとどうしてもエラーが出てしまいます。 どなたか改善方法を教えてください。また、もっと良い方法があるならそちらも教えて頂きたいです。

  • CGI
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • pco
  • ベストアンサー率50% (1/2)
回答No.1

print "<TD><IMG src=~graph.gif onclick=\"window.open(~graph.cgi?code=$ID, graph,'width=400,height=400');\"><BR></TD>\n"; この様にしてみていただけますか? print文を""で囲まれていますが、onclick=の後ろの"の部分で""の囲まれている部分が終わってしまっているためにエラーが出ているのだと思います。 "の前に\をつけることにより回避出来ますので試してみてください。

macky0225
質問者

お礼

ありがとうございます!エラーの回避に成功しました(^o^)丿 ただ・・・ジャンル違いの話になり申し訳ないんですが、今度は別のエラーログが出てきて・・・ 内容は「ランタイムエラーが発生しました。デバッグしますか? 行** エラー:構文エラー」となっています。 私も回避できるよう調べますが、申し訳ありませんが、こちらについても御指導願えますか?

その他の回答 (1)

  • pco
  • ベストアンサー率50% (1/2)
回答No.2

JavaScriptのエラーのようですね。 私は、JavaScriptはほとんど知らないもので、ちょっと分かりません。 サブウインドウはJavaScriptで出さなければいけないのでしょうか? 普通に<a href=URL target="_blank"><img src=URL></a> としても、別ウィンドウに表示されると思いますが。 お役に立てなくてすみません。

macky0225
質問者

お礼

なるほど、そーやって対処するほうが確実かもしれませんね(^o^)丿 度々の御指導有難う御座いましたm(__)m

関連するQ&A

  • エラー回避の方法

    単純なことになるかもしれませんが、エラーが回避できずに困っています。 ソース(抜粋・パスはゼッタイパスです。) <TD><IMG src=イメージ.gif onclick="window.open("~.cgi?code=$ID", graph, 'width=400,height=400,');" style=cursor:hand><BR></TD> エラーログ ランタイムエラーが発生しました。 デバッグしますか? 行** エラー:構文エラー 私自身JavaScript勉強中のため、なぜこうなるのか?どう回避(というかソースの改善?)すればいいのか?判らずにいます。 御指導おねがいします。

  • サブウィンドウ関係のコードの改造(その2)

    文末のコードは http://oshiete1.goo.ne.jp/qa3161625.html にてNo2ご教示いただいたものですが、 (1) 1回サブウィンドウを開くと2回目以降、うんともすんとも言わなくなってしまいます(スクリプトエラーにもなりません)。なぜでしょうか? (2) 開いたサブウィンドウのソースをみると、 <HTML></HTML>としか書かれていませんが、タイトルは「題名1」とセットされてますし画像も表示されています。なぜでしょうか。 開いたサブウィンドウの上下左右の余白をゼロにしたいので <body style="margin: 0px;">などとしたいのですが。 以上、よろしくお願い致します。 <html> <head> <script> function openNewWin(url,winTitle){ //画像オブジェクト作成 var img = new Image(); img.src = url; //画像のロード後に窓を開く img.onload=function(){ //画像の横幅 var width = this.width; //画像の横幅でabout:blankを開く var Win=window.open("", "new", 'scrollbars=yes,top=0,left='+(getScreenWIDTH()-width)+',width='+width+',height='+(getScreenHEIGHT()+20)); //Winのdocumentにタイトルをつける Win.document.title = winTitle; Win.document.body.innerHTML = '<img src="' + this.src + '" onclick="window.close();" alt="閉じる">'; } } function getScreenHEIGHT(){ if(!!window.screen){ return screen.height-80; }else{ return null; } } function getScreenWIDTH(){ if(!!window.screen){ return screen.width-12; }else{ return null; } } // --> </script> </head> <body> <a href="#" onClick="openNewWin('myimg1.gif','題名1')">開く1</a> <a href="#" onClick="openNewWin('myimg2.gif','題名2')">開く2</a> </body> </html>

  • 親ウィンドウのボタンからサブウィンドウを閉じたいのですが・・・。

    いつもお世話になっています。 JavaScript初心者です。 window.closeについて質問させて下さい。 メインウィンドウにある「next」という次のページに移るボタンをクリックすると、開かれているサブウィンドウを閉じる処理を実行したいのですが、window.closeを使えばいいということしか分からず、何をどこに書けば良いのか困っています。(サブウィンドウにも「閉じる」ボタンを作成していますが、親ウィンドウからも操作が出来るようにしたいと思っています。) どうか教えていただけませんでしょうか。 ソースは次の通りです。 ----------------------------- //サブウィンドウの表示 <script language="JavaScript"> function sub(msg){ var page =window.open("", "HintPage","screenX=400,screenY=600,left=400,top=600,width=400,height=250,scrollbars=yes,resizable=yes"); page.document.open(); page.document.writeln("<html>"); page.document.writeln("<head><title>{test}</title></head>"); page.document.writeln("<body leftmargin=\"15\" rightmargin=\"15\" topmargin=\"20\">"); page.document.writeln("<h3>[ {test} ]</h3><hr><br>" + msg + "<br><br><hr><br>"); page.document.writeln("<div align=center>"); page.document.writeln("<input type=button value=close onclick=\"javascript:window.close()\"></div>"); page.document.writeln("</body>"); page.document.writeln("</html>\n"); page.document.close(); page.focus(); } </script> </HEAD> //「next」ボタンの表示 <body> <table cellpadding=3 cellspacing=5 align="right"> <tr> <td bgcolor="#9999ff" align="right"><input type="submit" name="next" value="{nextBtn}" style="width: 140px; height: 20.5px;" onClick="setPname('{next}')" {disabled2}></td></tr> </table> </body> ---------------------------- どうぞよろしくお願い致します。 説明不足の点がありましたら補足させて頂きます。

  • サブウィンドウがリロードされたとき、手前に表示したい

    <a href= "a1.htm"onClick="window.open 'a1.htm','new','width=600,height=500,scrollbars=1,resizable=1'); return false;"> でサブウィンドウを開いています。 開いた状態で、また親ウィンドウから、別の(a2.htm)ファイルを開きます。同じサブウィンドウで表示されるのですが、親ウィンドウが手前でサブウィンドウが変わったのがわかりません。 サブウィンドウのファイルが変わったときに、 親ウィンドウの手前に表示させることは可能でしょうか?

  • 外部JSでサブウィンドウを設定する場合

    サブウィンドウの設定についてご質問いたします。 親ウィンドウの中の画像をクリックしてサブウィンドウを開くと言う設定をしたいのです。 親ウィンドウにある画像は2つでそれぞれ開くサブウィンドウの大きさは異なります。 まずsample.jsを作り function subopen1(){ window.open("××.html","subwin1", "width=450,height=450,toolbar=no,scrollbars=no,left=15,top=5") } function subopen2(){ window.open("××.html","subwin2", "width=500,height=450,toolbar=no,scrollbars=no,left=15,top=5"); } と記述しました。 そして<HEAD>~</HEAD>に <script type="text/javascript" src="sample.js"></script> 続いて<BODY>~</BODY>には <A href="javascript:subopen1()"><IMG src="××1.gif" width="100" height="120" alt="Click"></A> <A href="javascript:subopen2()"><IMG src="××2.gif" width="100" height="120" alt="Click"></A> と記述したのですが 「オブジェクトを指定して下さい」とエラー表示され実行出来ません。 上記に修正箇所があったら教えて下さい。 又別な方法でも構いませんのでサブウィンドウの設定が出来れば教えて頂きたいと思います。 どうか宜しくお願い致します。ペコ↓m(_ _;)m↓ペコ

  • サブウィンドウの画像を入れ替える

    初心者です。よろしくお願いします。 親ウィンドウからテキストリンクでサブウィンドウを開きます。 サブウィンドウには、基本的に2種類の画像があります。 親ウィンドウのテキストリンクは3種類(A、B、C)あり、Aのリンクをクリックしたときには、サブウィンドウの <img src="images/x_01.gif" name="sozai01" alt="" width="469" height="142"> <img src="images/x_02.gif" name="sozai02" alt="" width="469" height="142"> の2つの画像をそれぞれ指定する同じ大きさの画像(images/a_01.gifとimages/a_02.gif)に替えたいのですが、どうしたらいいのかさっぱりわかりません。どなたか教えていただけますでしょうか?

  • サブウィンドウに値を渡して、CGIにPOSTしたい

    お世話になります。 javascript初心者です。 題名のようにPOSTした値をポップアップで確認して、CGIに渡そうとしています。 親ウィンドウのoya.htmは、 <html> <head><title>submitの確認をポップアップで確認</title> <script type="text/javascript"> <!-- function fnWinOpen() { window.open("pop_post.htm", "win", "width=150,height=20"); } //--> </script> </head> <body> <form name="Form_name"> <input type="text" name="Data" /> <input type="button" value="送信" onClick="fnWinOpen()"> </form> </body> </html> でして、 サブウィンドウのpop_post.htmは、 <html> <head><title>submitの確認をポップアップで確認</title> <script type="text/javascript"> <!-- function fnStart() { document.getElementById("SubData").value = window.opener.Form_name.Data.value; } function job( url ) { 後はこの関数を完成さればと考えている } //--> </script> </head> <body onload="fnStart()"> <form method="post" > <input type="text" id="SubData" /> <input type="button" name="sub" value="送信job" onClick="job('thanks.cgi')"> </form> </body> </html> とやっています。 サブウィンドウに値を表示させることはできました。 後は、サブウィンドウの方の job関数で、submitするにはどうすればようのでしょう? 最後に値が渡されるCGI、thanks.cgiでは、そのデータを登録させ、「ありがとうございました」を表示させるものです。 また、そもそもこの方向でうまくできますか? よろしくお願いします。

  • JavaScript:サイズ固定のサブウィンドウ内でページを切り替え表示するソース

    <head>内スクリプトで、リンククリック時に開くサブウィンドウの名前・サイズ・スクロール/リサイズ可否を指定して、<body>内のリンクではURLだけを指定すればいいようにしたいのですが、どのようなソースを書けば良いのでしょうか? いろいろなサイトやここのQ&Aを見てみましたが、<head>内スクリプトで名前・サイズ・URLなど全て指定するものと、いずれも変数(?)だけで具体的に指定しないものしか見つけられませんでした。 今作成しているページでは、 【1】<head>内のスクリプト function imgOpen(theURL,winName,features) { //v2.0 window.open(theURL,winName,features);} 【2】<body>内のリンク <a href="JavaScript:void(0);" onClick="imgOpen('AAAA.html','code','width=450,height=400,scrollbars=yes')"> としてあります。 同じサブウィンドウで開きたいリンクがいくつもあるので、上記【2】の長ったらしいソースを毎々書いている状態です。せめて「'code','width=450,height=400,scrollbars=yes'」を略せたらと思っています。 宜しくご教示のほどお願い致しますm(__)m

  • CGIからサイズ指定のwindowopenを使いたいのですが・・

    こんにちは、CGIに記述されてますリンクを別ウィンドでサイズ指定して開こうとしているのですが、普通にWindowopen()で指示すると指定サイズで画面は開くのですがCGIでの変数$aなどの部分が出てないので全てを出力する方法を教えて下さい。 以下のスクリプトです。 print <<"EOF"; <table border=0"> <form action="~.cgi" method="post" target="_blank"> <tr><td> <input type="hidden" name="code" value="$a"> <input type="hidden" name="shohin" value="$b"> <input type="image" src="~.gif" name="submit" align="absmiddle"> </td></form> 上記の式のFORMタグ内を <form action="~.cgi" method="post" onclick="window.open(this.action,6,'width=$width,height=$height');return false"> に変更して指定サイズで表示するとHTML部分は表示されますが、$a、$bが表示されません。 javascriptを使用しないとできないのでしょうか? もし、そうならjavascriptの<head></head>ないの記述はCGIではどの部分に入れればよいのでしょうか? お手数ですがご回答よろしくお願いします。

    • ベストアンサー
    • CGI
  • 【FireFox】サブウィンドウ表示とテキストボックス値

    メインのウィンドウにテキストボックスとボタンがあり、 ボタンをクリックするとjavascriptによりサブウィンドウ が開くHTMLがあります。 しかし、FireFoxに限り、ボタンを押してサブウィンドウ を開くとメインのHTMLのテキストボックスに入力していた 値が消えてしまいます。 ================ main.html ===================== <html> <head> <script Language="JavaScript"><!-- function openSubWin(){ window.open("sub.html","window","width=300,height=300"); } // --></script> </head> <body> <form action="#" name="myform"> <input type="text" name="no"> <button id="button1" onclick="openSubWin();" >サブウィンドウ</button> </form> </body> </html> ================== サブウィンドウ ================ <html> <body> サブウィンドウ </body> </html> IEでは問題ありませんでした。 何か解決方法はありますでしょうか? 宜しくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう