CGI内でのjavaによるWindowopen

このQ&Aのポイント
  • CGI内でJavaを使用して画像クリック時に指定サイズの小窓を開く方法について相談しています。
  • 現在は<a><img>タグを使用してサムネイルをクリックすると原寸表示させていますが、ウィンドウサイズやツールバーの問題があります。
  • 現在のスクリプトから改造して、小窓に$imgを仕込む方法についてアドバイスを求めています。
回答を見る
  • ベストアンサー

CGI内でのjavaによるWindowopen

CGIを作成中です。 やっているのは更新記録を改造して、商品入荷情報にしようとしています。日付、商品名、説明と共に画像を載せるようにしています。 その画像の開き方ですが、うまい方法は無いでしょうか? 今のところ単に<a><img>タグを使ってサムネイルをクリックするとこで原寸表示させるようにしています。 ただ、これだと、前のウインドウサイズに左右されてしまうし、ツールバーなども表示されるためスマートではありません。 で、Javaを使って画像クリックで指定サイズ小窓を開くようにしようと考えました。 ただ、どのようにしたら良いかが全然わからずです。 今のところわかっているのは画像クリックで別窓を開かせる方法 ------------------------------ print "<SCRIPT LANGUAGE='JavaScript'>\n"; print "function newwindow() {\n"; print "nwin = window.open('', 'Newwindow','width=300,height=210');\n"; print "nwin.document.open();\n"; print "nwin.document.write(\"<html><head>\"); \n"; ~~ print "nwin.document.write(\"</body></html>\"); \n"; print "nwin.document.close();\n"; print "return false;\n"; print "}\n"; print "</SCRIPT>\n"; ------------------------------ と、 <A HREF=\"dummy.html\" onClick=\"return newwindow()\"><img~~> の組み合わせで画像クリックで別窓が開くということだけです。 これをどのように改造したら良いのでしょうか? 単純に、 小窓に$imgを仕込み、 <A HREF=\"dummy.html\" onClick=\"return newwindow($img)\"><img src="$img">じゃダメでしょうか? 初心者なので変な事いってるかもしれませんが、よろしくお願いします。

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

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

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

CGIでソースを吐き出してはいますが、動作としてはJavaScriptを利用するものですので、JavaScriptの部分はJavaScriptとして記述する必要があると思います。 数箇所改造しますね。 print "function newwindow(imgurl) {\n"; ・JavaScriptの関数に引数を渡すように記述を直しました。 print "nwin.document.write(\"<html><head>\")\; \n"; ~~ print "nwin.document.write(\"<img src=\'\"+imgurl+\"\'>\")\;\n"; ~~ print "nwin.document.write(\"</body></html>\")\; \n"; print "nwin.document.close()\;\n"; ・~~の部分に、渡された引数を利用して、JavaScriptでimgタグを書き出す部分を入れています(引数はimg要素のsrc属性に利用されます)。 JavaScript部分はここを修正すればよいと思います。 関数を呼び出す部分は、 print "<A HREF=\"dummy.html\" onClick=\"newwindow(\'$img\')\"><img src=\"$img\"></A>"; などと出力すれば良いと思います。 画像のURLについては、CGIの側で適宜出力するようにしてください。 動作検証はしていませんし、私はPerlの勉強をしている途中の身なので、的確でないことを書いているかもしれません。 見当違いでしたら、ごめんなさい。

master-3rd
質問者

お礼

ありがとうございます。 ばっちり動きました。

その他の回答 (1)

  • yuji
  • ベストアンサー率37% (64/169)
回答No.1

>初心者なので変な事いってるかもしれませんが、よろしくお願いします。 Java と JavaScriptは全くの別物です。 ご質問は JavaScript についてではないでしょうか? プログラミング - JavaScript のカテゴリーで質問しなおした方がいいです。 (私はJavaは専門家ですが、JavaScriptは素人なので、お答えできません。)

関連するQ&A

  • 半自作cgiが思うように動作しません。

    HTMLページから、$Dataというファイル名を持って来て、 このcgiで、$Data.jpgとなり、 その画像を、新しいウインドウ(サイズ指定)で表示させたいのです。。。 このcgiで新しくウインドウを開き、何かしらをクリックさせてから、サイズ指定のウインドウで画像を表示させるのはできるのですが、 クリックさせずに、しかも、最初に開いたウインドウは勝手に閉じさせたいのですが、 どこをどう直せばいいのでしょうか? #! /usr/bin/perl print "Content-type: text/html\n\n"; $Data = $ENV{'QUERY_STRING'}; $tail = ".jpg"; &header; print "<SCRIPT LANGUAGE='JavaScript'>\n"; print "function newwindow(imgurl) {\n"; print "nwin = window.open('img/$Data$tail\', 'Newwindow','width=300,height=210');\n"; print "nwin.document.open();\n"; print "nwin.document.write(\"<html><head>\")\; \n"; print "nwin.document.write(\"</head><body><img src=\"img/$Data$tail\'>\")\;\n"; print "nwin.document.write(\"<br><INPUT type='BUTTON' value='CLOSE' onclick='window.close()'>\")\; \n"; print "nwin.document.write(\"</body></html>\"); \n"; print "nwin.document.close()\;\n"; print "return false;\n"; print "}\n"; print "</SCRIPT>\n"; print "<BODY onload='window.close()'></body></html>\n"; sub header { print <<"EOM"; <html> <head> <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS"> <title>$Data</title> </head> EOM }

    • ベストアンサー
    • CGI
  • CGIにJAVAの記述をしたい

    CGIプログラムの中にJAVAの記述をしたいのですが うまくいきません。 ヒアドキュメントでくくってみましたが 500エラーで表示されませんでした。 どう記述すれば動いてくれるんでしょうか? print "Content-type: text/html\n\n"; print "<html><head>\n"; print "<META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html; charset=Shift_JIS\">\n"; print "<link rel=\"stylesheet\" type=\"text/css\" href=\"$loaddir/style.css\">\n"; print "<title>$title</title>\n"; ここに下記のJAVA文を入れたいです。 print "</head>\n"; 記入したいJAVA <SCRIPT language="JavaScript"> <!-- document.write('<img src="momo/123.cgi?' + 'javaref=' + document.referrer + '" width=1 height=1>'); // --> </SCRIPT>

    • 締切済み
    • CGI
  • 小窓の出し方について教えて下さい。(2)

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=568520 先ほどご回答を頂き、小窓の開き方は解決致しました。 ↓ <script type="text/javascript"><!-- function subwin(imgsrc,imgalt){ sub1=window.open("","subwin","width=230,height=160,resizable=1"); sub1.document.open(); sub1.document.write("<html><head><title>"+imgalt+"</title></head>"); sub1.document.write("<body style='margin: 0;'>") sub1.document.write("<img src='"+imgsrc+"' alt='"+imgalt+"'>"); sub1.document.write("</body></html>"); sub1.document.close(); } //--></script> body内の、呼び出し部分は、 <a href="#" onClick="subwin('画像ファイルのURL','画像ファイルの説明'); return false;"><img src="p_1.jpg" border="0" width="70" height="48"></a> が、クリックして開く小窓に表示させるHTMLファイルで開かせたい 画像が同じページにあります。(大きさは横500縦600) もう1つ教えて頂いた↓ <script type="text/javascript"><!-- function subwin(file){ window.open(file,"subwin","resizable=1, width=230, height=160"); } //--></script> 以上をhead内に記述して、呼び出し部分は <a href="#" onClick="subwin('読み出すHTMLファイルのURL'); return false;"><img src="p_1.jpg" border="0" width="70" height="48"></a> のwidth=230, height=160をwidth=500, height=600にして上記ソースに加えると(?) 全部の小窓がwidth=500, height=600になってしまいます。 width=230, height=160の画像で開かせる小窓と width=500, height=600のHTMLで開かせたい小窓を 同じページに加えるには、どうしたらよいのでしょうか? ご回答宜しくお願い致します。

  • 変数を送る方法?(CGIの「**.cgi?mode=00&name=aa.jpg」的な物)

    1ページに複数の画像があり、画像クリックで拡大写真を小窓で開くようにしたいです。 枚数分ページ(htmlファイル)を準備するのは避けたいです。自動生成の方でやりたいと思います。 その際、少しでも入力を減らしたいと思うのですが… 現在は以下のようになっています。 --- <SCRIPT language="JavaScript"> <!-- function wopen1(){ wo1=window.open("","WindowOpen1", "width=800,height=700"); wo1.document.write("<html><head><title>画像名</title>"); wo1.document.write("<script language='JavaScript'>"); wo1.document.write("function good(){"); wo1.document.write("window.close() }"); wo1.document.write("</script>\n</head>\n<body>"); wo1.document.write("写真名-コメント"); wo1.document.write("<IMG src='写真パス'>"); wo1.document.write("<center>"); wo1.document.write("<form>"); wo1.document.write("<input type='button' name= 'ok ' value=' Close ' onClick='good()'>"); wo1.document.write("</form>"); wo1.document.write("</center>\n</body>\n</html>"); wo1.document.close(); } (これが写真枚数分) これと、 <A href="javascript:void(0)" onclick="wopen1()"><IMG src="サムネイルパス"~ これの組み合わせです。 これを、 wo1.document.write("<html><head><title>[CGIで言う所の$name的な表現]</title>"); と <A href="javascript:void(0)" onclick="wopen1([CGIで言う所の?name=00&pict=01.jpg的な表現])"><IMG src="写真サムネイルパス"~ で済ませたいのですが、可能でしょうか? その場合、どのように記述したらいいのでしょうか? 出来ればピンポイントで教えていただけるとありがたいのですが… よろしくお願いします。

  • 画像と文字を同時に切り替えたい

    お世話になります。どうしてもできなくて困っています。 <script> var n=1; var msg = ["テキスト1", "テキスト2", "テキスト3", "テキスト4", "テキスト5", "テキスト6", "テキスト7"]; function change(){ i++; document.img.src="../img/test" + n+ ".jpg"; } </script> <a href="JavaScript:change();"><img src="../img/test1.jpg" name="img"/></a> <script> document.write((msg[i++])); </script> これで、画像をクリックすると、画像はどんどん切りかわっていきますがその下のテキストが切り替わりません!ずっとテキスト1が出たまんまなんです。どうしたらいいのかわかりません!分かる方、ぜひ教えてください

  • かぶらないランダム画像

    こんにちは。 現在ランダムに画像表示+画像毎に各リンク+マウスオーバーで画像切り替え を下記スクリプトで行っております。 function randomImage1() { img = new Array(); img[0] = "photo1.gif"; img[1] = "photo2.gif"; img[2] = "photo3.gif"; img[3] = "photo4.gif"; n = Math.floor(Math.random()*2); url = 'URL1 URL2'.split(' '); document.write('<a href="'+url[n]+'" target="_top"><img src="'+img[n]+'" border="0" onMouseOver="this.src=\''+img[n-0+2]+'\'" onMouseOut="this.src=\''+img[n]+'\'" onClick="location.href=\''+url[n]+'\'"></a>'); } ここで相談です。さらにこのソースを改造して 重複しないでランダムに画像表示させたいのですが、 どこをどう改造すれば良いかアドバイス宜しくお願い致します。

  • JavaScriptで呼び出したテキストリンクを画像にするには

    Java Scriptで呼び出したテキストリンクを、画像に替えたいのですがうまくいきません。人がつくったScriptの改造なので、今ひとつわかりにくくて困っています。 ソースは function callJavascript(str) { var obj = parent.document.getElementById('maryleTVLink'); obj.innerHTML = "<a href='http://localhost:8888/cb/cframe_play.php?user=tbsv1&idx=" +str+ "' onclick=\"return GB_myShow('MaryleTV', this.href)\">大きく見る</a>" ; } です。 作りとしては、callJavascriptを読み込んでいる画像(Flash)をクリックすると、テキストリンクが表示される、というものです。 「大きく見る」の部分を画像のボタンにしたいのですが、 どうしたら良いか教えてください。

  • リンクで画像を置き換えたい

    初心者ですが、よろしくお願いします。 たとえば 001.jpg 002.jpg 003.jpg という3つの画像ファイルがある場合に、 ---------------------------------- <html> <body> ~省略~ <a href = "#" onclick = "change_img(1)">画像1</a> <a href = "#" onclick = "change_img(2)">画像2</a> <a href = "#" onclick = "change_img(3)">画像3</a> <img src = "XXX.JPG> </body> </html> ---------------------------------- のような感じで画像1,2,3のリンクをクリックすることで、 ページ切り替えるのではなく、 XXX.JPGの部分のみ切り替えるscriptを考えているのですが、 ご教授願いないでしょうか? 要望としては、切替候補の複数の画像は ページをロードしたときに最初に全て読み込んでおいて、 リンククリック時の画像の切替をスピーディにしたいと考えています。 サンプルの上記例にそくしたサンプルのコードなどを 回答いただけると助かります。 よろしくお願いいたします。

  • ジャバスクリプトに関して

    ジャバスクリプトでファンクションコールするHTMLを作成したいのですが ファンクション処理を終了すれば、もう一度自分自身のページに戻りたいのですが方法が分かりません どなたか教えて下さい。 onclick= で対応出来るのでしょうか? 下記の様なホームページです。 ------------------------------------ <html> .. .. <script language="javascript"> function doc1(){ document.open(); document.write("<input type='button' name= 'DC11' value='clear' onclick='location.href=index.htm'>"); document.close(); } </script> <INPUT type="button" name="namedoc1" value="1.click!!" ONClick="doc1()"> <img border="0" src="ya01.gif" width="12" height="11"> <font color="#800080"><b><u>Q.xxxxxxxxxxxx</u></b></font> .. .. </html>

  • 画像クリックでウインドウを閉じたいのですが・・・

    こんにちは。JavaScriptはwebサイトから頂いて コピーして使うだけの理解力です。どうぞよろしくお願いします。 フォトアルバムを作っていまして、画像をクリックするごとに 画像が入れ替わるところまではできたのですが、 それですと延々と続いてしまいますので、最後の画像で小窓ごと 閉じてしまいたいのですが、どのようなタグになりますでしょうか? HEADに <SCRIPT LANGUAGE="JavaScript"> <!--// img = new Array("http://www5b.biglobe.ne.jp/○○.jpg","http://www5b.biglobe.ne.jp/○○2.jpg","http://www5b.biglobe.ne.jp/○○3.jpg"); i=0; function myChange(){ i++; i %=img.length; document.my_imgchange.src = img[i]; } // --> </SCRIPT> bodyに <a href="JavaScript:myChange()"><img src="http://www5b.biglobe.ne.jp/○○.jpg" border="0" name="my_imgchange"> と入れています。 例えば3枚目の画像をクリックした時に、また1枚目の画像に戻るのではなくて、 小窓ごと閉じてしまうにはどのようなタグをどこへ埋め込めばよろしいでしょうか? 色々試してみましたがうまくいきませんでした。 どなたか力をお貸しください。どうぞよろしくお願い致します。

専門家に質問してみよう