Go to DotNetFunda.com
 Online : 1319 |  Welcome, Guest!   Login
 
Home > Articles > ASP.NET > Handle back button of the browser

Submit Article | Articles Home | Search Articles |

Handle back button of the browser

1 vote(s)
Rating: 1 out of 5
red flag  Posted on: 11/4/2009 5:04:33 AM by Virendradugar | Views: 2955 | Category: ASP.NET | Level: Beginner


This article explains various techniques to disable / Handle back button of the browser.



Introduction
How many time, it has happened with you that when your client has asked you to that end-user should not be allowed to go back to previous page using browsers back button? But the actual problem is we don't have any control on the browser's back button. The “Back” browser button cannot be actually disabled by a web application as the browser security will not allow this. But yes there are number of workarounds using which we can achieve this functionality.

Solutions

Using JavaScript, we can forward the user to the same page if user presses the back button of the browser. See the code below :

 <script type="text/javascript" language="javascript">
    
    function GoBack()
    {
        window.history.forward();
    }
    </script>
Call this JavaScript function on the onload event of body tag.

<body onload="GoBack();">

This method will always redirect to the user on the current page itself.

For example, user is on page 1 and there is a link on Page 1 which takes user to Page 2. Now when user clicks on the link, browser redirects the control to Page 2. Now from page 2 if user press back button of the browser then user will be redirect to the page 2 itself.

window.history contains the collection of the page visited by the user for particular browser session. As an alternative of window.history.forward(), one can also use window.history.go(+1). As both are same.

But if we want to display web page expired warning on the click of back button as we normally see in all banking sites? Actually what happens is, when you press the back button, browser takes the page from cache and display it on screen. So if we want to show web page expired warning, we should not allow the browser to cache the page. We can achieve this via ASP.NET.

protected void Page_Load(object sender, EventArgs e)
{  
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
}

This code will not allow page to be cached. But one problem with this approach is that this will only work when there are some dynamic content in the page. i.e. change any drop down box value and then try to press back button.

Conclusion
Your comments are always appreciated. If you can find out better solution then this please let me also know.

Enjoy...


If you like this article, subscribe to our RSS Feed. You can also subscribe via email to our Interview Questions, Codes and Forums section.

Found interesting? Add this to:

| More



Please Sign In to vote for this post.

 
Latest post(s) from Virendradugar

Latest Articles
Experience:3 year(s)
Home page:http://virendrablogs.blogspot.com
Member since:Tuesday, August 11, 2009
Level:Silver
Status: [Member]
Biography:Virendra Dugar is experienced Senior Software Developer with over 3 years of hands-on experience working with Microsoft .NET technology (ASP.NET, C#, VB.NET,SQL Server). He is always keen to learn new technology. He holds a Master's Degree in Computer Application & Information technology from Gujarat University in india.In free time, he loves to listen music, read books, play games and do blogging etc.

Visit his blog :
http://virendrablogs.blogspot.com
http://virendradugar.wordpress.com

Submit Article

About Us | The Team | Advertise | Contact Us | Testimonials | Privacy Policy | Terms of Use | Link Exchange | Members | Go Top
General Notice: If you found plagiarised (copied) contents on this page, please let us know the original source along with your correct email id (to communicate) for further action.
Copyright © DotNetFunda.Com. All Rights Reserved. Copying or mimicking the site design and layout is prohibited. Logos, company names used here if any are only for reference purposes and they may be respective owner's right or trademarks. | 9/3/2010 3:58:22 AM