ASP.Net 別ウィンドウを開く・ジレンマ編

このQ&Aのポイント
  • ASP.Netで別ウィンドウを開く方法について、JavaScriptでルート指定する方法やResponse.Redirectでターゲット指定する方法について教えてください。
  • 現在、ASP.Netで別ウィンドウを開くためにJavaScriptのClientScript.RegisterStartupScriptを使用していますが、ルート指定ができない問題があります。また、Response.Redirectではターゲット指定ができず上書きされてしまいます。
  • このジレンマを克服する方法や、上級者の方がどのように対処しているのか教えてください。
回答を見る
  • ベストアンサー

ASP.Net 別ウィンドウを開く・ジレンマ編

大変お世話になっております。 現在別ウィンドウを開くのに ClientScript.RegisterStartupScript(Me.GetType, "OpenNewWindow", "<script language=""javascript"">window.open('URLを指定', 'TARGET');</script>") を使用しております。 ですが上記の場合だとjavascriptの為、ASP.Net で使用できる ~(チルダ)が使用できず、ルート表示ができません。 Response.Redirectで記述すると、ターゲットが指定できず、ウィンドウを上書きする形になってしまいます。 足して2で割れればいいのですが、javascriptで ~(チルダ)のようなルート指定ができる方法、もしくは、Response.Redirectでターゲットが指定できる方法など、もしあるようでしたら、お教えいただけますよう、何卒ご教授くださいませ。 上級者の方は、このジレンマをどのように克服されているのか是非ともお教えくださいませ。

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

  • ベストアンサー
  • onos
  • ベストアンサー率81% (127/155)
回答No.2

Response.Redirect は、ブラウザに HTTP のステータスコード 302(だったはず)を返すものです。 このとき、遷移先のURLを指定することしかできません。 ブラウザ側もそれ以上のことはできないです。 ASP.NETとはいってもブラウザを使う以上、基本はHTTPおよびHTMLです。 そこでできる以上のことはできません。 自分が実装したコードはHTTPやHTMLだとどうなるのか、という観点から考えると、できること できないことがはっきりしますし、なぜできないかという部分も理解できるかと思います。

kyokotan12
質問者

お礼

onosさん 大変お世話になります。 HTTP、HTMLともに、まだまだ浅はかな知識しか持ち合わせておらず、以後、同時に勉強していきたいと思っております。 今回は大変勉強になりました。 ありがとうございました。

その他の回答 (2)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

window.openで、 Request.ApplicationPath + 飛び先ページ を指定する

  • onos
  • ベストアンサー率81% (127/155)
回答No.1

本質的な問題はなんでしょう。 自分の経験から判断すると、開発環境だとルートが「localhost:ポート/プロジェクト名/」とか なのに、本番環境は「本番ドメイン名/」だったりすることが多く、この違いをうまく吸収したい ということかな、と思うのですが。。。 もしそういうことなら、やりようはいろいろあると思うのですが、単純な方法としては ルートを指定する文字列を設定ファイル内に記述しておいて、Windows.Openの中の 'URLを指定'のところは上記設定してある文字列+ウィンドウに表示したいファイル名 とかに変えてしまうことかな、と思います。 開発環境と本番環境用の設定ファイルをきちんときりわけて利用すればそれでいけるかと。

kyokotan12
質問者

補足

onosさん いつもお答えいただき大変恐縮しております。 ご指摘どおり、開発環境と本番環境での違いの吸収をどういう形でやるということが一番の問題でした。 おっしゃるとおり、開発環境と本番環境で設定ファイルを切り分ける方法がありました。 ご指摘の柔軟性を以後忘れないようにしたいと思います。 しかし、やはり2つの方法の良いとこ取りはできないんでしょうかね;; Response.Redirect にターゲットを指定できれば、一番良いんですが;;

関連するQ&A

  • Response.Redirectで別ウインドを開きたい

    <Script Language="JavaScript"> function OpenPDF(val){ window.open(val,'',''); } </Script> というJavaを、 Response.Redirect ("JavaScript:OpenPDF('http://xxx.ne.jp/kkk.htm')") と書いているんですが、 サーバーが見つからないか、DNS エラーです。 と、エラーが出てしまうんです...

  • 子ウィンドウでウィンドウサイズ固定にしてtarget=

    HPを作っていて親ウィンドウに↓のように <script language="JavaScript"> <!-- function winopen(url){ win=window.open(url,"host","scrollbars=1,width=780,height=480"); } //--> </script> ~略~ <a href="dougu/keito.html" target="_blank" onClick="Javascript:winopen('dougu/keito.html');return false;"><img src="img/item-keito10.gif" width="50" height="38" border="0"> ウィンドウサイズを固定してtarget="_blank"で開いてさらにその子ウィンドウでも同じようにリンクを張って <script language="JavaScript"> <!-- function winopen(url){ win=window.open(url,"host","scrollbars=1,width=780,height=480"); } //--> </script> ~略~ <a href="../wash.html" target="_blank" class="style1" onClick="Javascript:winopen('../wash.html');return false;">こちら</a> とtarget="_blank"でウィンドウサイズを固定しして開きたいのですが同じウィンドウで開いてしまいます。 説明の仕方が分かりづらくてすみません。分からないようでしたら補足いたします。

  • ウィンドウが閉じた時に別の指定したURLをポップアップで表示させるコード

    ウィンドウが閉じた時に別の指定したURLをポップアップで表示させたいのですが、以下のようなコードでいいのでしょうか?何度も試しているのですが、ウィンドウを閉じても別の指定したURLがポップアップで表示されません。どこに間違いがあるのか教えてください。 (作成したコード) <script language="JavaScript"> <!-- function Leave(){ window.open("表示させたい URL","window1","width=1800,height=1700"); } //--> </script> よろしくお願いします。

  • 小さなウインドウで。

    <SCRIPT language="JavaScript"> <!--HPB_SCRIPT_CODE_40 // _HpbJumpURLinNewWindow: 新規ウィンドウを開いて指定したURLにジャンプします。 // function _HpbJumpURLinNewWindow(url) { if (url != '') { window.open(url, '_blank',"scrollbars=1,width=500,height=400"); } } //--> </SCRIPT> と今は書き込んであるのですが、ここから よく様々なサイトで見かけるような 真ん中に必ず小さなウインドウが来るようにするには どのように書き込めば良いのでしょうか? 教えてください。僕のはHPビルダー2001です。 それとこれはNNやIEのどれにも対応しているのでしょうか?

  • ASP.NETで子画面の処理でわからなく悩んでいます。

    ASP.NETで子画面の処理でわからなく悩んでいます。 ?親画面Aでボタンを押下すると、子画面Bが表示されます。 ?子画面Bが存在しないときは、子画面Bを表示をさせて存在するときは、  子画面Bの内容をリロードをしたいと思っています。  データの受け渡しは、 Sessionでしたいと思っています。 ?ボタン押下時の処理は下記に記載しました ⇒とりあえず画面表示がされます。 ?子画面が存在するときのチェックと子画面のリロードの方法を教えてください。 よろしくお願いいたします。  ASPか javascriptか迷ったのですが ASPであげさせて頂きます。 ' Dim scriptStr As String ' scriptStr = "<script type='text/javascript'>" ' scriptStr += "window.open('webMesai.aspx','_blank');" ' scriptStr += "</script>" ' ' ClientScript.RegisterStartupScript(Me.GetType(), "詳細画面", scriptStr)

  • ハイパーリンクをクリックしてサイズ指定のウィンドウを表示したい

    ブラウザ上のハイパーリンクをクリックすると サイズ指定したウィンドウを表示したいのですが、 サイズ指定となるとJavaScriptを使用しないと ダメなのでしょうか?? JavaScriptを使用してウィンドウを出すという処理 自体はわかっているのですが、<A>(アンカータグ)を 使用している為、onclickイベントで処理しようとしても その前に<A>でアドレスと指定していないのでエラーに なってしまいます。何かいい方法はないでしょうか? よろしくお願いします!!! 一応、ソースを記載しておきます。 <A HREF="" onclick="output();">ハイパーリンク</A> <script language="JavaScript"> function output() { window.open("test.htm,"","width=500,height=600"); } </Script>

  • onclickでtarget指定

    <SCRIPT language="JavaScript"> function _HpbJumpURL(url) { if (url != '') { window.location = url; } } </SCRIPT> で、IFRAME内のソースに onclick="_HpbJumpURL('index.html');" とした時、クリックするとIFRAME内にindex.htmlが表示されてしまうのですが、 これを親ウィンドウにindex.htmlを表示させたい場合は、どうすればいいのでしょうか? どこにtarget指定を入れればいいのかがわかりません。 宜しくお願いいたします。

  • ウインドウの後ろに隠れているページを前面に出したいんです。

    「呼び出し元ページ」をA 「呼び出されるWINDOWページ」をB と例えます。 「A」のリンクをクリックすると「B」がNEW WINDOWで開き、既に開いている「B」のリンクをクリックすると背面「A」が手前に来るjavascriptに挑戦しているのですが、うまく動作しないんです。 逆の順序「B」→「A」→「B」もです。 WIN IE6.0では成功しましたが、FIREFOX、ネスケ、Mac safariの最新verではダメでした。 すみません、誰か教えて頂けないでしょうか。 現在「A」「B」のページには下記の記述をしてます。 IEでは大丈夫でした。 別の方法でも良いのでお願いします。 ■「呼び出し元ページA、test1.com」 <script language="javascript"> <!-- window.focus(); //--> </script> <A href=http://www.test2.com/ target=test>リンク</A> ■「呼び出されるWINDOWページB、test2.com」 <script language="javascript"> <!-- window.focus(); //--> </script> <A href=http://www.test1.com/ target=test>リンク</A>

  • java scriptで新しいウィンドゥを開く

    クリックすると、アドレスバー等がない新しいウィンドゥで開く…という風にしたいのですが、うまく行きません。 以下のようにやってみたのですが、何処が間違っているのでしょうか? <script language="JavaScript"> <!-- function winopen(url){ win=window.open(url,"host","scrollbars=1,width=717,height=700"); } //--> </script><FONT size="+1"><B><A href="ブログのアドレス" target="_blank" onclick="Javascript:winopen('ブログのアドレス');return false;">ここをクリック</A></B></FONT>

    • ベストアンサー
    • HTML
  • 新規ウインドウでサイズ指定

    target="_brank"で新規ウインドウを表示する時に画面のサイズを指定する事はできないのでしょうか? JavaScriptではwindow.openでwidth,heightでサイズを指定すればできますよね。 同じようにtarget="_brank"でサイズの指定はできませんか?

専門家に質問してみよう