• ベストアンサー

<FORM TARGET="">で開く窓の大きさ指定

Javascriptかもしれませんが、perl内で使いたいので一応ここで‥‥ A.cgiからフォームに入力後送信、B.cgiに飛びます。 その時、B.cgiを新しく開いたウィンドウに表示したいので下記のようにしてます。 A.cgi側フォーム <FORM METHOD="post" ACTION="B.cgi" TARGET="_blank"></FORM> この_blankで新しい窓は開きますが、この開いた窓の大きさを指定するにはどうしたらいいんでしょうか? Javascriptはあまり良くわかりませんが、window.open()くらいなら使った事あります。これだと大きさも指定できますが、パラメーター(?)を渡しつつ、開いた窓の大きさも指定したいのです。 渡したいパラメーターは1種類(しかも変数で代入できる)なので、フォームじゃなくても <A HREF="B.cgi=?$i"></A>って格好でもいいです。($iの値は固定されていない) 何か私でもできる簡単な方法はありますか?

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

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

  • ベストアンサー
  • naoto0314
  • ベストアンサー率34% (25/73)
回答No.2

すみません。以下のままだと要望に応じることが出来ない状態でした。$iは何に変えてもOKです。 A.cgi 修正前 <INPUT type=hidden name=X value=500> <INPUT type=hidden name=Y value=500> 修正後 <INPUT type=hidden name=X value=$i> <INPUT type=hidden name=Y value=$i> 修正前 <FORM action=B.cgi> 修正後 <FORM METHOD="post" ACTION="B.cgi" TARGET="_blank">

Terari
質問者

お礼

回答ありがとうございます。 resizeも考えたのですが、resizeだと見る側の人が窓のサイズを変更できませんよね?それが少し不便かと。 しかし、hiddenでサイズの要素を送るなんて事考えてもみませんでした。何か少しヒントになった気がします。今後別の事にもいかせそうですしね。 ありがとうございました!

Terari
質問者

補足

今実験してみたら、見る側で窓の大きさ変更できました(^^; 何かと勘違いしてたようです。 これなら、標準的なブラウザに対応してるし使えそうですね! ありがとうございました。

その他の回答 (2)

noname#227796
noname#227796
回答No.3

window.openを使うなら2通り考えられます。 まず、上手くいかないブラウザがある方法。(^^; フォームのsubmitで <INPUT TYPE="submit" VALUE="送信" onClick="window.open('','hogehoge','width=200,height=200');"> として、ボタンが押された際のonclickイベントでウインドウを起動しておいて、そのウインドウめがけてフォームのアクションを飛ばしてやる方法。 "_blank"は予約されたターゲット(新しいウインドウを開く)であるため、うまくいかないので、まったく違う名前"hogehoge"などというターゲットに変更します。 また、タブブラウザや一部のブラウザでは上手くいかない可能性があります。 もう一つのやり方としては、アンカータグでやる方法。 2通りあります。 <script language="javascript"> <!-- function new_window(url,name,status) { window.open(url,name,status); return; } //--> </script> などという関数を作っておいてから、hrefで直接その関数を呼び出す方法。 <a href="javascript:new_window('a.html','hogehoge','width=200,height=200')">リンク</a> または、onclickイベントで呼び出す方法です。 <a href="#" onclick="new_window('a.html','hogehoge','width=200,height=200');return false;">リンク</a> onclickイベントの場合は、関数の方で「return;」となっている部分を「return false;」と書いておき、 <a href="#" onclick="return new_window('a.html','hogehoge','width=200,height=200');">リンク</a> と書くこともできます。

Terari
質問者

お礼

回答ありがとうございます。 returnの意味を調べてみたのですが、今いちよく理解できず‥‥戻り値??何が戻るの?ってな感じです(javascriptめ) で、別にonclickじゃなくてもいいので、直接hrefでやりました。 フォームに入力した値(複数)も渡したかったのですが、今回はよくわからないという事で、最低限渡したかった$iだけをwindow.open("B.cgi?$i" ,"~", "width=~,height=~") で渡してB.cgi側でフォーム入力してもらう事にしました。(それでも全然問題ない) window.openを使った事があるんだから、よくよく考えれば簡単だったんですよね(^^; 人に教えてもらって気付く‥‥ ありがとうございました!

  • naoto0314
  • ベストアンサー率34% (25/73)
回答No.1

FORMで使う場合はhidden要素でサイズを送信し、 受け取るCGIで <SCRIPT language="JavaScript"> <!-- resizeTo($X, $Y); //--> </SCRIPT> とJAVAスクリプトで指定してみてはいかがでしょうか? ---- A.cgi ---- <FORM action=B.cgi> <INPUT type=hidden name=X value=500> <INPUT type=hidden name=Y value=500> <INPUT type=submit value=送信> </FORM> ---- B.cgi ---- $X = $FORM{'X'}; $Y = $FORM{'Y'}; print <<"EOM"; <SCRIPT language="JavaScript"> <!-- resizeTo($X, $Y); //--> </SCRIPT> EOM ※動作未確認

関連するQ&A

  • 【至急】XHTML 1.1でValidになる form (target=_blank)付フォーム

    以下のHTMLは、XHTML 1.1でValidになるのですが・・ ・<a href="aaa">aaa</a> ・<a href="aaa" onclick="window.open('aaa','_blank');return false">link</a> ・<form method="post" action="aaa"> <input name="text" value=""> <input type="submit"> </form> 以下のHTMLは、XHTML 1.1でValidにならなくて困っています。 ・<form method="post" action="aaa" target="_blank"> <input name="text" value=""> <input type="submit"> </form> 上記のAタグのJavaScriptでのwindow.openの方法でこのValidにならないformタグをValidにできるようにならないでしょうか? 受け取り側(perlスクリプト)は以下の条件があります。 ・どのコードが入るか不明だが、ブラウザで認識されているコードが入ると思われる。 ・UTF8が使えるかどうか不明 ・EUCは確実に使える ・内部コードはEUCである よろしくお願いします。 p.s.ポップアップ(target=_blank等)が何故廃止されたとか、そのような議論はご遠慮下さい。

    • ベストアンサー
    • HTML
  • targetブランクで開くのと同じ様にJavaScriptで別窓を開くには?

    お世話になっております。 画像をクリックされたときに、JavaScriptで簡単な 条件分岐をし、リンク先のURLを判別して別窓で開く、 という実装を求められています。 別窓でURLを開く際に、window.openで普通にやってしまうと、URL表示やツールバーなど見えなくなってしまうのですが、今回は、あたかも、target="_blank"で開いたのと、見分けがつかないようにせねばならず困っています。 何か簡単に実装する方法をご存じでしたら教えてください。 もしくは、細かくパラメータを指定してwindow.openするしかないでしょうか?その場合は、どのような指定で開くのがベストでしょうか?

  • FormのACTION属性にいて

    FORMのACTION属性を、選択型にはできないでしょうか? <form action="" method=post> 例えばユーザーがフォーム内の項目でAを選択したら、actionの中をA.cgiに。 Bを選択したらB.cgiにするような事はできますか? 通常はactionの中は1つしか指定できないのですが、ユーザーの選択によっては、フォームの値をA.cgiに渡したり、B.cgiに渡したりできると良いと思っています。 CGIを利用しないと無理かもしれませんが、何か良い方法や便利なCGIがありましたら、教えて頂けると助かります。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • form の target(

    form タグに オプションとして存在する target に関してです。 form method="POST" action="***.cgi" target="new" と記述すればsubmit実行時に結果を別ウィンドウに転送します ここまではいいのでが・・・・ submitボタンが複数ある場合(ボタンによって処理が違う) ボタンによって、このボタンは新しいウィンドウを開くが、 このボタンは開かない(同一ウィンドウ内に結果表示する) というように設定することはできますか? CGIとJavaSCRIPTの利用は可能です。 やはり別の form を立てるしかないのでしょうか? (cgiに渡す値が大量なため一つのformで実現したいとおもっています)

    • ベストアンサー
    • HTML
  • <FORM>タグのtargetに値を書込む方法を教えて下さい

    送信ボタンを押すとtargetの値をとれず、javascriptエラーになります。 「引数は無効です」と表示されます。 SUBMITした時にmake_newwin(f)を動作しようとしているのですが、 うまくtargetが取れません。 targetには、親ウィンドウ名を書き込みたいのです。 何か良い方法ありましたら、教えて下さい。 <script language="javascript" type="text/javascript"> <!-- function make_newwin(f) { alert(f) …ここで内容を表示したところ[object]と表示されました。   var w = window.open('about:blank', f.target);    w.focus(); window.close(); } <FORM name="test" action="/cgi-bin/test.cgi" method="post" target="" onSubmit="make_newwin(this);"> <input name = "aaa" type = "hidden" value ="10000" >        : </FORM> </BODY> <script> document.test.target=opener.window.top.name; </script> </HTML>

  • javascript/target="_blank

    フレーム内から別窓でurlを開こうとしています。 htmlでは以下の通りで、実現できます。 <a href="http://www.goo.ne.jp/" target="_blank">goo</a> JavaScriptで window.open(my_url,'_blank'); return false; としても、別窓で開くのですが、戻るの「←」が表示されてしまいます。(上記、「my_url」は変数です。) 宜しくお願いします。

  • 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
  • リンク風sabmitのformをまとめられますか?

    フォームの送信を、リンク風に表示しているのですが、 複数ある場合、フォームタグをまとめることはできるのでしょうか? 下記にHTMLを記載しております。 <form name="word1" method="POST" action="word.php"> <input type="hidden" name="fruit" value="みかん"> </form> <form name="word2" method="POST" action="word.php"> <input type="hidden" name="fruit" value="りんご"> </form>    ・    ・    ・    ・ <form name="word100" method="POST" action="word.php"> <input type="hidden" name="fruit" value="ぶどう"> </form> <a href="javascript:document.word1.submit()">みかん</a> <a href="javascript:document.word2.submit()">りんご</a>    ・    ・    ・    ・ <a href="javascript:document.word100.submit()">ぶどう</a> と、1つ1つ書いていて長すぎると思っていたのですが まとめることは可能なのでしょうか? また、可能であれば、javascript等の知識が必要となるのでしょうか? ご教授宜しくお願い致します。

  • HTMLページから他のフォーム.cgiを利用する場合に別窓で表示したい

    HTMLページから他のフォーム.cgiを利用する場合に別窓で表示したい。 <form method="get" action="http://~~~"> <input type="text" name="url" size="45" value="http://" /> <input type="submit" value="送信" /> </form> これで自分のHTMLサイトから、送信をクリックすると 他の.cgiの結果がそのまま今表示しているブラウザで表示されますが、 自分のページを残したまま、 <a href="http://~~" target="_blank"> のクリック時のように、別窓で表示したいのですが。お願いします<(_ _)>

    • ベストアンサー
    • HTML
  • ターゲット指定とは何ですか。

    ターゲット指定とは何ですか。 以下のようなFlashメニューがあるとします。 &sub2=薬の選び方と使用& &url2=http://my-natural-life.com/engei_life/kusuri.html& &target2=_blank& sub2のターゲット指定 この時の_blank&とは何ですか。 上記のURLを指すものでしょうか。URLなら<a href="●●">リンク先名</a>とすべきでしょうか。 それともまったく違ったものを記入するべきでしょうか。 また、&URLの最後の「&」はつけなければならないでしょうか。 よかったら、例を示して教えてください。

専門家に質問してみよう