<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dotnetslackers.com/Community/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>KaushaL.NET : confirm alert on browser close event</title><link>http://dotnetslackers.com/Community/blogs/kaushalparik/archive/tags/confirm+alert+on+browser+close+event/default.aspx</link><description>Tags: confirm alert on browser close event</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 SP1 (Build: 30415.43)</generator><item><title>User is trying to leave! Set at-least confirm alert on browser(tab) close event!!</title><link>http://dotnetslackers.com/Community/blogs/kaushalparik/archive/2011/02/27/user-is-trying-to-leave-set-at-least-confirm-alert-on-browser-tab-close-event.aspx</link><pubDate>Sun, 27 Feb 2011 18:25:00 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:37050</guid><dc:creator>kaushalparik</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetslackers.com/Community/blogs/kaushalparik/rsscomments.aspx?PostID=37050</wfw:commentRss><comments>http://dotnetslackers.com/Community/blogs/kaushalparik/archive/2011/02/27/user-is-trying-to-leave-set-at-least-confirm-alert-on-browser-tab-close-event.aspx#comments</comments><description>&lt;p&gt;This is something that might be annoying or irritating for end user. 
Obviously, It&amp;#39;s impossible to prevent end user from closing the/any 
browser. Just think of this if it becomes possible!!!. That will be a 
horrible web world where everytime you will be attacked by sites and 
they will not allow to close your browser until you confirm your 
shopping cart and do the payment. LOL:) You need to open the task 
manager and might have to kill the running browser exe processes.&lt;br /&gt;&lt;br /&gt;Anyways;
 Jokes apart, but I have one situation where I need to alert/confirm 
from the user in any anyway when they try to close the browser or change
 the url. &lt;br /&gt;&lt;br /&gt;Think of this: You are creating a single page intranet
 asp.net application where your employee can enter/select their 
TDS/Investment Declarations and you wish to at-least ALERT/CONFIRM them 
if they are attempting to:&lt;br /&gt;[1] Close the Browser&lt;br /&gt;[2] Close the Browser Tab&lt;br /&gt;[3] Attempt to go some other site by Changing the url&lt;br /&gt;without completing/freezing their declaration.&lt;br /&gt;&lt;br /&gt;So,
 Finally requirement is clear. I need to alert/confirm the user what he 
is going to do on above bulleted events. I am going to use 
window.onbeforeunload event to set the javascript confirm alert box to 
appear.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script language=&amp;quot;JavaScript&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.onbeforeunload = confirmExit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function confirmExit() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 return &amp;quot;You are about to exit the system before freezing your 
declaration! If you leave now and never return to freeze your 
declaration; then they will not go into effect and you may lose tax 
deduction, Are you sure you want to leave now?&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;See!
 you are halfway done!. So, every time browser unloads the page, above 
confirm alert causes to appear on front of user like below:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://weblogs.asp.net/blogs/kaushal/BlogFiles/confirm-alert.png" title="User is trying to leave! Set confirm alert on browser(tab) close event!!" alt="User is trying to leave! Set confirm alert on browser(tab) close event!!" height="165" width="800" /&gt;&lt;br /&gt;&lt;br /&gt;By
 saying here &amp;quot;every time browser unloads the page&amp;quot;; I mean to say that 
whenever page loads or postback happens the browser onbeforeunload event
 will be executed. So, event a button submit or a link submit which 
causes page to postback would tend to execute the browser onbeforeunload
 event to fire!&lt;br /&gt;&lt;br /&gt;So, now the hurdle is how can we prevent the 
alert &amp;quot;Not to show when page is being postback&amp;quot; via any button/link 
submit? Answer is JQuery :)&lt;br /&gt;&lt;br /&gt;Idea is, you just need to set the 
script reference src to jQuery library and Set the window.onbeforeunload
 event to null when any input/link causes a page to postback.&lt;br /&gt;&lt;br /&gt;Below will be the complete code:&lt;br /&gt;&lt;br /&gt;&amp;lt;head runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script src=&amp;quot;jquery.min.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script language=&amp;quot;JavaScript&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.onbeforeunload = confirmExit;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function confirmExit() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
 return &amp;quot;You are about to exit the system before freezing your 
declaration! If you leave now and never return to freeze your 
declaration; then they will not go into effect and you may lose tax 
deduction, Are you sure you want to leave now?&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(function() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&amp;quot;a&amp;quot;).click(function() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.onbeforeunload = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&amp;quot;input&amp;quot;).click(function() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.onbeforeunload = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So,
 By this post I have tried to set the confirm alert if user try to close
 the browser/tab or try leave the site by changing the url. I have 
attached a working example with this post &lt;a href="http://weblogs.asp.net/blogs/kaushal/BlogFiles/CloseConfirm1.1.zip"&gt;here&lt;/a&gt;. I hope someone might find it helpful.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;&lt;b&gt;EDIT [26-February-2011]&lt;/b&gt;&lt;/span&gt;:
 I would like to edit this post here. I missed out to write that any 
control event that may cause a postback needs to be checked and set 
window.onbeforeunload = null; like I have set for Button Click or 
Hyperlink Click.&lt;/p&gt;
&lt;p&gt;For Example, IF you have a&amp;nbsp; Select/DropDownList 
control which is causing a postback then you need to set 
window.onbeforeunload = null; on click of &amp;quot;select&amp;quot; as below:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&amp;quot;select&amp;quot;).click(function() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.onbeforeunload = null;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=37050" width="1" height="1"&gt;</description><enclosure url="http://weblogs.asp.net/blogs/kaushal/BlogFiles/CloseConfirm1.1.zip" length="30515" type="application/x-zip-compressed" /><category domain="http://dotnetslackers.com/Community/blogs/kaushalparik/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetslackers.com/Community/blogs/kaushalparik/archive/tags/.NET/default.aspx">.NET</category><category domain="http://dotnetslackers.com/Community/blogs/kaushalparik/archive/tags/KaushalParik/default.aspx">KaushalParik</category><category domain="http://dotnetslackers.com/Community/blogs/kaushalparik/archive/tags/kaushalparik27/default.aspx">kaushalparik27</category><category domain="http://dotnetslackers.com/Community/blogs/kaushalparik/archive/tags/kaushal.net/default.aspx">kaushal.net</category><category domain="http://dotnetslackers.com/Community/blogs/kaushalparik/archive/tags/window.onbeforeunload/default.aspx">window.onbeforeunload</category><category domain="http://dotnetslackers.com/Community/blogs/kaushalparik/archive/tags/browser+close+event/default.aspx">browser close event</category><category domain="http://dotnetslackers.com/Community/blogs/kaushalparik/archive/tags/confirm+alert+on+browser+close+event/default.aspx">confirm alert on browser close event</category></item></channel></rss>