الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

How To Log Out With Javascript Confirm Message

بدأه صاحب همة في 30 أبريل 2008 · 3 رد · 1,081 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

كنت ابحث في اظهار رسالة رسالة تأكيد في حالة الرغبة للخروج ، ووصلت الى ما اريد فاحببت أن اشارككم

1 - اضافة button-link button وليكن اسمه btnLogOut

2 - اضافة label مخفي وليكن اسمه hiddenFeild

3 - اضافة السكربت التالي:

 <script>	

function ConfirmMsg()
{
  if(confirm("You will logout. Are you sure?" ))
  {  
   document.getElementById("hiddenFeild").value= "true";	
  }
  else
  {  
   document.getElementById("hiddenFeild").value= "false"; 
  }  
}
 </script>

4- اضافة الكود التالي للخروج:

   
if (hiddenFeild.Value == "true")
		{
			Session["UserSetting"] = null;
			Response.Redirect("default.aspx");
		}

وسلامتكم

من لمح فجر الأجر هان عليه ظلام التكليف

#2

الله يعطيك العافية

طيب اخي سؤال انا اريد اظهار هذه الرسالة عند النقر على زر الاغلاق الخاصة للمتصفح او عند اغلاق المتصفح وبعد الموافقة على الرسالة يقوم بإفراغ الـsession :rolleyes: وبدون اعادة تحميل الصفحة مرة اخرى

تم تعديل هذه المشاركة بواسطة محمد سماقية في 1 مايو 2008 في 09:47

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#3

هنا الفكرة كالتالي

عند اغلاق المتصفح اتحسس حالة اغلاق وقبل الاغلاق استدعي صفحة request.axd بواسطة الـstandard ajax وذلك ضمن الملف AjaxScript.js والملف AjaxVariables.js يوجد اسم الصفحة التي سوف يتم استدعائها بالـajax

الصفحة الرئيسية default.aspx

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">

	<script src="js/AjaxVariables.js"></script>

	<script src="js/AjaxScript.js"></script>

	<title>Untitled Page</title>

	<script type="text/javascript">
			 var alterffourflag=0;
			 var lastkey=0;
			 var refreshflag=0;
			 document.onkeydown = function ( event )
			 {			 
				event = event || window.event;
				return window_onkeydown();
			 }
	</script>

	<script for="window" event="onunload">

		 if (refreshflag!=1)		 
		 {	   
			  var offset=0.0;
			  var width=0.0;
			  offset=18500/screen.width;  
			  width=document.body.offsetWidth;
			  if (((window.event.clientY < 0) && (window.event.clientX > (width - offset)))||alterffourflag==1) {  

				   if(confirm("You will logout. Are you sure?" ))
				  {  
					 fnLogout();  
				  }
			}
		 }
		 refreshflag=0;   

	</script>

	<script language="javascript" type="text/javascript">
	function window_onkeydown()
	{
	  var keynum
	  var numcheck
	  e=window.event;
	  keynum = e.keyCode;
	   if((lastkey==18 && keynum==115)||(lastkey==17 && keynum==87))
	  { 
	  alterffourflag=1;
	  }
	  if(keynum==116)
	  {
		  refreshflag=1;
	  }   
	  lastkey=keynum;
	}

	</script>

</head>
<body style="text-align: center" language="javascript">
	<form id="form1" runat="server">
		<div style="background-color: Beige">
			 <asp:Label ID="lblStatus" runat="server" Font-Bold="True" ForeColor="MidnightBlue"
				Width="62px"></asp:Label><br />
			<asp:Button ID="btnlogin" runat="server" Text="Login" Width="50px" />
			<asp:Button ID="btnLogout" runat="server" Text="logout" /><br />
		</div>
	</form>
</body>
</html>

Imports System.net
Partial Class _Default
	Inherits System.Web.UI.Page

	Protected Sub btnlogin_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnlogin.Click
		Session("UserSetting") = New ListItem("Mohammad Summakia", "1983")
		lblStatus.Text = CType(Session("UserSetting"), ListItem).Text
	End Sub

	Protected Sub btnLogout_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnLogout.Click
		Dim client As WebClient = New Net.WebClient()
		Dim Port As String = Request.ServerVariables("SERVER_PORT")

		If (Port = Nothing Or Port = "80" Or Port = "443") Then

			Port = ""

		Else

			Port = ":" + Port
		End If


		Dim Protocol As String = Request.ServerVariables("SERVER_PORT_SECURE")

		If (Protocol = Nothing Or Protocol = "0") Then

			Protocol = "http://"

		Else

			Protocol = "https://"
		End If

		client.DownloadData(Protocol + Request.ServerVariables("SERVER_NAME") + Port + Request.ApplicationPath + "/request.axd?logout=true")
		Page_Load(Nothing, Nothing)
	End Sub

	Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		If (Session("UserSetting")) IsNot Nothing Then
			Try
				lblStatus.Text = CType(Session("UserSetting"), ListItem).Text
			Catch
			End Try
		Else
			lblStatus.Text = ""
		End If
	End Sub
End Class

ملف AjaxVariables.js

var AjaxServerPageName;
AjaxServerPageName = "request.axd";

ملف AjaxScript.js

var XmlHttp;


function CreateXmlHttp()
{

	try
	{
		XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch(oc)
		{
			XmlHttp = null;
		}
	}

	if(!XmlHttp && typeof XMLHttpRequest != "undefined") 
	{
		XmlHttp = new XMLHttpRequest();
	}
}


function fnLogout() 
{
	var requestUrl = AjaxServerPageName + "?logout=true" 
	CreateXmlHttp();

	if(XmlHttp)
	{

		XmlHttp.onreadystatechange = HandleResponse;

		XmlHttp.open("GET", requestUrl,  true);


		XmlHttp.send(null);		
	}
}



function HandleResponse()
{

	if(XmlHttp.readyState == 4)
	{

		if(XmlHttp.status == 200)
		{			
			alert(XmlHttp.responseText);			
		}
		else
		{
			alert("There was a problem retrieving data from the server." );
		}
	}
}

كلاس request.vb

مع الملاحظة هنا انا استخدمت الـIHttpHandler interface و من اجل الوصول للـsession يجب ايضاً تطبيق الـIRequiresSessionState interfase

Imports Microsoft.VisualBasic
Imports System.Web.SessionState
Public Class request
	Implements IHttpHandler, IRequiresSessionState

	Public ReadOnly Property IsReusable() As Boolean Implements System.Web.IHttpHandler.IsReusable
		Get

		End Get
	End Property

	Public Sub ProcessRequest(ByVal context As System.Web.HttpContext) Implements System.Web.IHttpHandler.ProcessRequest
		If context.Request("logout") = "true" Then
			Dim lSession As HttpSessionState
			lSession = context.Session
			lSession("UserSetting") = Nothing
			context.Response.Clear()
			context.Response.Clear()
			context.Response.ContentType = "text/html"
			context.Response.Write("true")
			context.Response.End()
		Else
			context.Response.Clear()
			context.Response.End()
		End If
	End Sub
End Class

الاضافة ضمن الـweb.config تحت عقدة او tag الـ<system.web>

	<httpHandlers>
	  <remove verb="POST,GET" path="request.axd"/>
	  <add verb="POST,GET" path="request.axd" type="request"/>
	</httpHandlers>

تم تعديل هذه المشاركة بواسطة محمد سماقية في 5 مايو 2008 في 11:46

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#4

شكرا اخي محمد

لكن اذا ممكن تشرح لنا المثال بشكل اكبر

لانه الصراحه ما قدرت افهمه

شكرا

abdullahf4.jpg

مواضيع مشابهة