処理結果を別ウィンドウに表示する方法

このQ&Aのポイント
  • 質問者は、アクセス制御のページを作成しています。メインページから別のページへのリンクを押すと、サブウィンドウが開き、IDを入力して認証を行い、メインページに結果を表示したいと考えています。しかし、ウィンドウBではなくウィンドウAに表示させる方法がわからないと困っています。質問者はninsyo.cgiのコードを提供しており、結果を表示するための方法を教えてほしいとしています。
  • ウィンドウAにページBを表示させる方法を教えてください。
  • 質問者は、ninsyo.cgiのコードを提供しており、結果を表示するための方法を教えてほしいとしています。
回答を見る
  • ベストアンサー

処理の結果を別のウィンドウに表示する方法

アクセス制御のページを作っていまして、 1.メインページ(ウィンドウA)からそのページ(ページB)へのリンクボタンを押す 2.サブウィンドウ(ウィンドウC)が開き、IDを入力してninsyo.cgiへリンク 3.ninsyo.cgiで認証OKだったら、ウィンドウAにページBを表示 という様に動作させたいのですが、 3.のところでウィンドウAに表示させる方法がわかりません。ウィンドウBに表示されてしまうんです。 ninsyo.cgiは以下のようになっています。 open (HTML,"$html"); @html = <HTML>; close (HTML); print "Content-type: text/html\n"; print @html; exit 0; 方法ありましたらご教示ください。よろしくお願いいたします。

  • Perl
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • tenro-
  • ベストアンサー率32% (23/70)
回答No.2

ちょっと、言葉足らずでしたね。 以下のHTMLを試してみてください。(抜粋です。ちゃんとHTMLにしてくださいね) 上がindex.html、下がchild.htmlです。 上のリンクで、自分自身に名前をつけて、新しい窓にchild.htmlを表示しています。 で、その名前をchild.htmlのformでtarget属性に指定しているわけです。 この辺のヒントで大丈夫でしょうか? あ、IEでのみ確認です。 ------------ <A href="child.html" target="_blank" onClick="window.name='oya'">windowを開く</A> ------------ <form action="http://www.yahoo.co.jp/" target="oya"> <input type="submit" value="親にHTMLを・・・"> </form>

tamatsu_13
質問者

お礼

ご回答ありがとうございました。 教えていただいた方法を参考に、目的のウィンドウに表示されるようにはなりました。 ただ今度はID認証に失敗してしまって。。。 試しに違うcgiにリンクさせたところそれは正常に動いたので、cgiの問題だと思いますが、さっきまでは同じcgiで違う方のウィンドウに表示されてたのになぜでしょうか。 今調べていますが、もし何かお心当たりがあれば教えていただけないでしょうか。 何度も申し訳ないんですが、よろしくお願いいたします。

その他の回答 (2)

  • tenro-
  • ベストアンサー率32% (23/70)
回答No.3

#2のお礼に対して。 「失敗する」の具体的なデータがないのでなんとも・・・ エラーログやHTMLのタイプミスとかはチェックなさいました?

tamatsu_13
質問者

お礼

よく分からないんですが、全部FTPのアップロードをし直したら(?)おかげさまで思っていたように動くようになりました。 本当にありがとうございました。 (Perlのカテゴリに質問してすみませんでした)

  • tenro-
  • ベストアンサー率32% (23/70)
回答No.1

ウインドウは3つ開くんですか?2つのような気が・・・ それはさておき、どの画面に出力するかはPerl側ではなく、ブラウザ側(HTML側)で制御します。 新しい画面を開くときにJavaScriptをご使用だと思うのですが、そのとき指定した名前を <a>のtarget属性か<form>のtarget属性に指定してください。 このtarget属性自体もJavaScriptで動的に変更することも出来ます。

tamatsu_13
質問者

お礼

上記の方法やってみたんですが、 target属性を指定するのは、ウィンドウAの <a href="#" target="ninsyo" onclick="idwin_open('g')"… のところでしょうか。 下記のJavaScriptでウィンドウCを開いていますが、 function idwin_open(win){ document.kakure.link.value=win; window.open("id.html","id_ninsyo",""); } id.htmlが表示された後すぐにウィンドウAのページが表示されてしまいます。 表示させたいページBにtarget属性を指定するとすれば、<a>や<form>は任意の場所でいいんでしょうか。 また教えてください、よろしくお願いいたします。

tamatsu_13
質問者

補足

ご回答ありがとうございます。 ウィンドウは2つです。 ・・ウィンドウCに表示されてしまう・・の間違いでした。すみません。 上記の方法、さっそくやってみます。

関連するQ&A

  • ウィンドウを閉じたときのイベント処理

    「onUnload」でイベント処理を記述すると、ページを移動したときにも処理が行われますが、ウィンドウを閉じたときだけ処理を行いたい場合のイベントはどのように記述すればよいでしょうか? メインウィンドウからリンクをかけて、サブウィンドウを表示させ、そのサブウィンドウ内で何ページかリンクページを設定していますが、サブウィンドウ内でのページ移動中はそのままで、サブウィンドウを閉じてメインウィンドウに戻るときだけ、確認ウィンドウを1ページ表示させたいのです。 よろしくお願いします。

  • HTMLのファイルにCGI処理結果を表示する

    まずトップページはhtmlで作ります。 そのトップページにいつも変化する所があるのでcgiで処理を施したものをhtmlに貼り付けたいと思っています。 その場合に例えば画像を出力させる場合は <IMG src="cgi-local/top.cgi"> で指定し、 #!/usr/local/bin/perl print "Content-type: image/jpeg\n\n"; open FH,"<../image.jpg"; binmode FH; binmode STDOUT; print while(<FH>); close FH; をやれば動かせますが、これを画像ではなくhtmlを表示させるためには print "Content-type: image/jpeg\n\n"; を print "Content-type: text/html\n\n"; に変更する事により可能だと思いやってみたのですが、うまく出力できませんでした。 cgi処理をうまくhtmlに貼り付ける方法があるのでしょうか。どうか教えて頂けないでしょうか?お願します。(涙)

    • ベストアンサー
    • CGI
  • CGIスクリプトの結果が表示しない

    windows2000 proffesinal sp.4でActivePerl5.8.8..819・・・・、Apache2.054の環境で"10日で覚えるPerlCGI"を使用。IEバージョンは5でページを「表示できません」のエラーがときたまでる。 上記環境でApacheは正常に動作。TeraPad使用。CGIスクリプト1-2.cgiとして作成。 #! C:/perl/bin/perl # CGIヘッダーの出力 print "Content-type: text/html\n\n"; print "<DOCTYPE HTML PUBLIC \n-//W3C//DTD HTML4.01//EN\">\n"; print "<html>\n"; print "<head><title>Hello HTML</title></head>\n";# htmlの出力 print "<body><p>こんにちわ。これはHTML文書の例です。</p></body>\n"; print "</html>\n"; 上記スクリプトを1-2.cgiとしてApaghe2-htdocs-tendaysに保存 IEのURLに:: http://127.0.0.1/tendays/1-2.cgiと入力・・・そして下記の表示が出ました。 #! C:/perl/bin/perl# CGIヘッダーの出力print "Content-type: text/html\n\n";# htmlの出力print "\n"print こんにちわ。これはHTML文書の例です。 \n";print" "; 原因を教えてください。windows7 64bit でもこのようにスクリプトだけが表示されたことがあり(perl,Apacheのバージョンも最近のものを使用)その時は、相談室にお世話になりながら自分の 未熟さにあきれお尋ねしなかったのですが、最後HTML5を習えばのお答えで、今。参考書を買って人通り見たのですが、フォームメールや掲示板はやはり裏でCGIが動作しているので。また古いパソコンで始めたのでしたが最初からつまずきました。doreamweaber もあるのですが、能力がないのに 人様の作成したフりーソフトをスクリプトの意味が分からず貼り付けるのはいささか情けないかなと 考えています。最終的にはそうなると思っていますが、できればsendmailを使用したCGIスクリプトとかんがえています,が。とりあえず一歩一歩づつと思っています。10年以上前に作成したホームページをアップしっぱなしです。メールが送信できません。当時のプロバイダーがocnでその時提供されたもので裏でCGIが動いているなんて知りませんでした。今biglobeです。 自分の作りかけのホームページのURLは http://www7b.biglobe.ne.jo/~asunarohei/indexhei.htmlです。メールのスクリプトを貼り付けたいのです。それと掲示板をリンクさせたいです。 わからないことだらけで、ご迷惑かけますがよろしくお願いします。

  • 別のウインドウを出す

    HTMLにて、Aというファイル内でリンク指定したジャンプ先をB、更にBというファイル内でリンク指定したジャンプ先をCとしたとき、それぞれJavascriptのopen_windowを使って、それぞれ別のページをウインドウの大きさを変えて表示させるようにしたいのですが、A→Bはうまくいくのですが、B→Cをすると、BのページがCに変わる(同一ウインドウでジャンプされる)だけで、Cを表示したいウインドウが新規に出てきません。 因みに、 <a href="javascript:open_window('ファイル名',form,width=200,height=200,left=0,top=0,resizable=yes,scrollbars=yes)">ジャンプ先</a> としています。 どこを修正すればいいか解らないので教えて下さい。よろしくお願いします。

  • Perlで他サイトの情報を取得し一覧表示させる処理の高速化

    Perlで他サイトの情報を取得し一覧表示させる処理の高速化 Perl初心者です。よろしくお願いします。 同サーバ内にあるテキストデータをPerlで読みこみ、HTMLで一覧表示させるプログラムを見よう見真似で作成しました。リストのレコード数は10~30ほど。タイトルとボタンA~Eが配置されており、ボタンAはファイルA、ボタンBはファイルB…とリンクしています。 ファイルは同サーバ内にあり、ファイルの有無を調べてリンクするか、しないかを設定していましたが、この度、訳があってこのファイルが他サーバへ移動、さらにシステムから吐き出される仕組みになって、同じPDFファイルでも「xxxx.pdf」が「http://hoge.com/hoge.aspx?code=1234」のようにファイルの場所を特定することができなくなりました。 仕方なくファイルの有無を指定するHTMLを書き出すようにしてもらったのですが、それをget(url)で取得する方法に切り替えたとたん、一覧表示にするのに5~6秒かかるようになってしましました。 さらにこれが原因でアクセス過多でサーバに負荷がかかり、ページを表示できない要因にもなってしましました。 情報の取得方法や、負荷をかけない方法などご教授いただければ幸いです。 以下CGI抜粋 #!/usr/local/bin/perl use LWP::Simple; use Time::Local; use LWP::UserAgent; $file = @ARGV[0]; $data = $file; $file .= ".txt"; print "Content-type: text/html\n\n"; print <<HTML; <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=x-sjis"> <META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript" /> … </HEAD> <BODY style="margin : 0px; > <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0"> HTML open(IN, $file); while(<IN>){ @in = split(/\t/); $pdf = "https://www.hoge.com/filecheck/entFileCheck.aspx?=@in[10] $gPdf = get($pdf); #ボタン配置の処理とか・・・ close(IN); print "</BODY>\n"; print "</HTML>\n"; exit;

  • 関数の中から別の関数内のforeachの実行結果を得られない

    お世話になります。 環境 perl 5.8.0 RHLinux9 以下のようにsub _Htmlからsub _List1を呼び出す場合は正常にリスト表示できるのですが、sub _List2を呼び出した場合、 Content-Type: text/html <HTML lang=ja > <HEAD>...として表示されてしまいます。 sub _List1{ @list = (0, 1, 2, 3, 4, 5); foreach (@list) { print "$_\n"; } } sub _List2{ $a1 = "./dir/data.dat"; $a2 = "./dir/data.dat"; $a3 = "./dir/data.dat"; &FileOpen('FILE1',"$a1"); &FileOpen('FILE2',"$a2"); &FileOpen('FILE3',"$a3"); @DATA = <FILE1>; push @DATA, <FILE2>,<FILE3>; close(FILE1); close(FILE2); close(FILE3); foreach (@DATA) { ($key,$val)=split(/=/,$_); print "$key=$val"; $StartNum++; } } sub _Html{ print <<EOM; <table> <tr><td> .. EOM &_List(''); print <<EOM; <tr><td> .. </table> EOM } sub _List2の内容を、CGIからhtmlを表示する際のスキン.htmlファイル内に下記のように記述した場合も 正常にリスト表示されます。 --スキン.html------ print <<"<!---HTML--->"; <HTML lang=ja > <HEAD>... <!---HTML---> $a1 = "./dir/data.dat"; $a2 = "./dir/data.dat"; $a3 = "./dir/data.dat"; &FileOpen('FILE1',"$a1"); &FileOpen('FILE2',"$a2"); &FileOpen('FILE3',"$a3"); @DATA = <FILE1>; push @DATA, <FILE2>,<FILE3>; close(FILE1); close(FILE2); close(FILE3); foreach (@DATA) { ($key,$val)=split(/=/,$_); print "$key=$val"; $StartNum++; } } print <<"<!---HTML--->"; ... </BODY></HTML> <!---HTML---> 1; ---

    • ベストアンサー
    • Perl
  • 複数HTMLを1つの別ウィンドウで表示

    javascriptについて質問です。 1HTMLから別ウィンドウ表示したいリンクが複数あります。 クライアントからクリックの度にウィンドウが新たに開かないようにして欲しいとの 依頼があり、下記のjavascriptでウィンドウ名「subwindow」に上書き表示されるようにしました。 ■javascript■ <!-- function subWins(pages){ w=window.open(pages,"subwindow",""); w.focus(); } //--> ■HTML■ <a href="javascript:;"onClick="subWins('リンク先URL')">●●●●●</a> 上記の場合、javascriptをOFFにしているとリンクが効きません。 javascriptをOFFにしていてもウィンドウが開く方法はないでしょうか。 説明不足でしたら補足させていただきます。どうぞ宜しくお願い致します。

  • リンク先をサブ・ウインドウに表示させ、元ウインドウには別ページを表示させたい

    リンク先をサブ・ウインドウで表示、元ウインドウには別ページを表示する方法(HTML、またはjavascript)を教えてください。 コード内に<a href="../a.pdf" target="_blank">AのPDF</a>と記述します。 ブラウザ上では、「AのPDF」をクリックすると、別のウインドウに「A.pdf」が表示されます。 前出のクリック同時に、元ウインドウ(「AのPDF」の文字が掲載されていた)を別ページ『B.html』に遷移させたい。 オペレーターが休んでいるので、至急修正を頼まれていて困っています。

  • 別のページにあるiframeに、CGIの結果を表示させたい。

    こんにちわ。javascriptで出来るという噂を聞いたのですがjavascriptは初心者でして、どうしたら良いものか分からず、助けを求めております…。 indexというページに、CGIへの結果のリンク一覧が掲載してありまして、それをクリックすると、kekka.htmlの中のiframeに呼び込まれて、kekka.htmlが表示される、というのは出来るのでしょうか…。 色々調べてみたのですが、iframeを2つ以上制御する、というのですとかはあったのですが、違うページの中のiframeを制御、という方法がわからなくて…。 大変分かりづらい質問でスミマセンが教えて頂けますと幸いです。どうぞ宜しくお願いいたします。

  • 別ウィンドウで複数ページを同時に開く方法

    現在作成中のホームページについて、どうしても分からないことがあるので、教えて下さい。 やりたいこととしては、以下の内容です。 ・リンク、もしくはボタンを押すことによって、別ウィンドウで新しいページを2つ開く。 ・仮にその2つのページの名前を、ページA、ページBとすると、ページAとページBは同時に開くのではなく、最初にページAが読み込まれた後に、ページBを開くようにする。 ・ページBが開いたあとは、ページAは閉じる。 HTMLだけではできないと思ったので、JVS、VBSを使ってみたのですが、どちらにしても、ページAの読み込みが終了してから、ページBを開く方法がわからなくて… 何か方法を知っていましたら、教えて下さい。 宜しくお願い致します。

    • ベストアンサー
    • HTML