ホームページ >ウェブフロントエンド >フロントエンドQ&A >asp.net ボタン イベントによりページが閉じられます。JavaScript コードは必要ありません
ASP.NET では、通常、現在のページを閉じるには、window.close() メソッドを使用するなど、JavaScript コードを実装する必要があります。ただし、JavaScript コードを使用せずにボタン イベントでページを閉じる必要がある場合があります。この記事では、ASP.NET でボタン イベントを使用してページを閉じる方法を紹介します。
まず、ASP.NET ページにボタン コントロールを追加し、そのプロパティ値を設定します:
<asp:Button ID="btnClose" runat="server" Text="关闭页面" OnClick="btnClose_Click" />
次に、ボタンの Click イベントに次のコードを追加します:
protected void btnClose_Click(object sender, EventArgs e) { Response.Write("<script>window.close();</script>"); }
上記のコードは、Response.Write メソッドを使用して JavaScript コードをページに出力し、現在のページを閉じる機能を実現しています。
ただし、この実装には問題があります。ブラウザでポップアップ ウィンドウのブロック機能がオンになっている場合、JavaScript コードが実行されず、ページを閉じることができなくなります。
この問題を解決するには、ASP.NET が提供する別の方法、つまりサーバー側で Response.End メソッドを使用してページを閉じることができます。
ボタンの Click イベントに次のコードを追加します。
protected void btnClose_Click(object sender, EventArgs e) { HttpContext.Current.Response.Flush(); HttpContext.Current.Response.SuppressContent = true; HttpContext.Current.ApplicationInstance.CompleteRequest(); }
上記のコードは、HttpContext.Current オブジェクトを使用し、Response.Flush、Response.SuppressContent、および ApplicationInstance.CompleteRequest メソッドを呼び出します。ページを閉じます。ブラウザのポップアップ ブロックの影響を受けません。
さらに、サーバー側の JavaScriptSerializer クラスを使用して JavaScript コードをサーバー側の変数にシリアル化し、その変数をボタンの Click イベントで使用してページを閉じることもできます。
まず、JavaScriptSerializer クラスのインスタンスを作成し、JavaScript コードをシリアル化します:
JavaScriptSerializer serializer = new JavaScriptSerializer(); string script = serializer.Serialize("window.close();");
次に、この変数をボタンの Click イベントで使用してページを閉じます:
protected void btnClose_Click(object sender, EventArgs e) { ScriptManager.RegisterStartupScript(this, GetType(), "close", "<script>" + script + "</script>", false); }
上記のコードは、ScriptManager.RegisterStartupScript メソッドを使用して起動スクリプトを登録し、ページが読み込まれた後にページを閉じる JavaScript コードが実行されるようにします。
つまり、ASP.NET ではページを閉じる方法が数多くあり、実際のニーズに応じて適切な方法を選択できます。ただし、不必要な操作を避けるために、ページの読み込み中はこれらのメソッドを使用しないように注意してください。
以上がasp.net ボタン イベントによりページが閉じられます。JavaScript コードは必要ありませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。