2012-01-02 82 views

答えて

4

ほとんどすべてのブラウザで新しいウィンドウを開くには、最近、ユーザーのクリックイベントから呼び出す必要があります。ほぼすべてのブラウザ(これはケースの約99%をカバーしています)は、ページロードイベントから呼び出されるポップアップをブロックするので、おそらく新しいウィンドウで開くリンクを表示することで、ソリューションを再考することをお勧めします。

クリックイベントで新しいウィンドウを開くと、処理ページが開き、必要なページにリダイレクトされます。基本的には、最初にclickイベントでポップアップを開き、新しいページでリダイレクトを行います。

+0

はい。 target = "_ blank"のAタグは非常に単純な使い方でも動作します。または、AJAXを使用してページの一部を更新することもできます。 +1 –

3

Response.Writeを使用してこれを行うことはできません。要求がサーバーに送信されるとすぐに、要求されたページがどこで開かれるかは既に決定されています。したがって、サーバーコードが実行されると、ページが開かれる場所を変更することは既に遅すぎます。

新しいウィンドウでページを開く場合は、その要求をサーバーに送信する前に完了する必要があります。ポストバックを行う代わりに、_blankを指定してリクエストを送信する必要があります。あなたはそのためのリンクを使用することができます。

<a href="Page.aspx" target="_blank">...</a> 

あなたはJavaScriptでwindow.open方法を使用することができます。

window.open('Page.aspx', '_blank'); 
+0

私はこれを試しましたが、サーバ側でC#コードを実行してから新しいウィンドウを開く必要があります –

+0

@FaheemShehzad:それは本当に意味がありませんが、 'ScriptManager.RegisterStartupScript'を使って' window.open'ポストバックの後。 – Guffa

関連する問題