2013-08-02 32 views
6
<script type="text/javascript"> 

    { 

     function DisableBackButton() { 

       window.history.forward() 

      } 

      DisableBackButton(); 

      window.onload = DisableBackButton; 

      window.onpageshow = function (evt) { if (evt.persisted) DisableBackButton() } 

      window.onunload = function() { void (0) } 

    } 

</script> 

Tôi đang sử dụng mã sau trong trang chính để xác nhận nút quay lại.Vô hiệu hóa nút quay lại của trình duyệt trong C#

Response.Cache.SetCacheability(HttpCacheability.NoCache); 
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1)); 
Response.Cache.SetNoStore(); 

Response.ExpiresAbsolute = DateTime.Now.AddDays(-1d); 
Response.Expires = -1500; 
Response.CacheControl = "no-cache"; 
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache); 

Tôi có một trang chủ trong đó nút logout là có khi người dùng clickon rằng người dùng sẽ được chuyển hướng đến logout page.this đang làm việc tốt và một lần tôi đang cách nhấn nút trên lưng nó được tham gia tôi đến trang cuối cùng tôi đã duyệt qua. Ngay cả khi tôi đã thử bằng Javascript.

Tôi đang tạo thời gian trong phiên sau 5 phút. Khi phiên hết hạn người dùng sẽ được chuyển hướng đến trang hết hạn phiên đó, nút quay lại đưa tôi đến trang cuối cùng được duyệt.

+0

Kiểm tra này. nó hoạt động tốt http://geekswithblogs.net/Frez/archive/2010/05/18/back-button-issue-after-logout-in-asp.net.aspx – Syed

Trả lời

7

Đây chức năng JavaScript này sẽ làm việc trong tất cả các trình duyệt và ngăn chặn người dùng điều hướng trở lại trang trước bằng cách nhấn trên trình duyệt trở lại kiểm tra nút bên dưới đoạn mã JavaScript

<script type="text/javascript" language="javascript"> 
    function DisableBackButton() { 
     window.history.forward() 
     } 
    DisableBackButton(); 
    window.onload = DisableBackButton; 
    window.onpageshow = function(evt) { if (evt.persisted) DisableBackButton() } 
    window.onunload = function() { void (0) } 
</script> 

Chúng ta cần phải được đặt phía trên đoạn mã trong phần tiêu đề của một trang bất cứ nơi nào chúng tôi cần để ngăn người dùng điều hướng trở lại trang khác bằng cách sử dụng nút quay lại trình duyệt.

Tôi sẽ giải thích yêu cầu của chúng tôi với một ví dụ tôi có hai trang Defaul1.aspx và Default2.aspx bây giờ tôi sẽ chuyển hướng từ trang Default1.aspx đến trang Defaul2.aspx. Sau khi đến từ trang Defaul1.aspx để Default2.aspx nếu tôi cố gắng điều hướng trở lại trang Default1.aspx từ Defaul2.aspx thì tôi muốn ngăn người dùng điều hướng trở lại trang trước (Defaul1.aspx). Để đạt được vị trí chức năng này ở trên hàm JavaScript trong phần tiêu đề của trang bắt buộc.

Sau khi thêm chức năng JavaScript của chúng tôi để trang của chúng tôi mã mà sẽ là như thế này

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Disable Browser Back buttons</title> 
    <script type="text/javascript" language="javascript"> 

     function DisableBackButton() { 
     window.history.forward() 
     } 
     DisableBackButton(); 
     window.onload = DisableBackButton; 
     window.onpageshow = function(evt) { if (evt.persisted) DisableBackButton() } 
     window.onunload = function() { void (0) } 
    </script> 
    </head> 
    <body > 
    <form id="form1" runat="server"> 
    <div> 
     First Page 
    </div> 
     <div> 
     <asp:Button id="btnFirst" runat="server" Text="Go to First Page" PostBackUrl="~/Default.aspx" /> 
     <asp:Button ID="btnSecond" runat="server" Text="Go to Second Page" PostBackUrl="~/Default2.aspx" /> 
     <asp:Button ID="btnThree" runat="server" Text="Go to Third Page" PostBackUrl="~/Default3.aspx" /> 
     </div> 
    </form> 
    </body> 
    </html> 

Chúng tôi cũng có thể đạt được điều này bằng cách tắt bộ nhớ đệm trình duyệt trong mã đằng sau viết những dòng sau mã trong Page_Init sự kiện hoặc sự kiện Page_Load và đừng quên thêm namespace bằng System.Web; vì HttpCacheability liên quan đến không gian tên đó.

protected void Page_Init(object sender, EventArgs e) 
    { 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1)); 
     Response.Cache.SetNoStore(); 
    } 

Chúng tôi cần phải đặt mã này trong một trang bất cứ nơi nào chúng ta cần phải vô hiệu hóa trình duyệt nút quay lại

+0

Xin chào mã đang hoạt động cho hai trang nhưng khi trang cái đang đi vào bức tranh thì nó không hoạt động điên rồ. –

3
<script type="text/javascript" language="javascript"> 
    window.onload = function() { 
     noBack(); 
    } 
    function noBack() { 
     window.history.forward(); 
    } 
</script> 
<body onpageshow="if (event.persisted) noBack();"> 
</body> 

Xin chào, Bạn có thể làm điều đó như thế này,

Thực hiện mã này trong tổng thể trang

Tôi đã triển khai tính năng này và nó đã hoạt động đối với tôi ..

+0

Tôi đặt đoạn mã này vào trang chính và nút backbutton vẫn đang đưa tôi đến trang duyệt cuối cùng một điều nữa ở đây trong ứng dụng backbutton shhould làm việc và trong trang đăng xuất và phiên hết hạn trở lại buuton không hoạt động.đây là yêu cầu . –

+0

Chèn đoạn mã này vào trang đăng xuất và trang hết hạn ... và mã này hoạt động tốt trong ứng dụng của tôi – salah9

3
<script language="JavaScript"> 
this.history.forward(-1); 

+0

chỉ cần sử dụng ... – Msoni

1

Redirect để Logout.aspx trang trên nhấp vào "logout" Thêm một trang mới như Logout.aspx với nội dung sau đây cơ thể.

 Please wait. You are Logging out. 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
     </asp:ScriptManager> 
     <asp:Timer ID="Timer1" runat="server" Interval="1000" ontick="Timer1_Tick"> 
     </asp:Timer> 

thêm javascript như sau

function noBack() { 
      window.history.forward() 
     } 
     noBack(); 
     window.onload = noBack; 
     window.onpageshow = function (evt) { if (evt.persisted) noBack(); } 
     window.onunload = function() { void (0); } 

Logout.aspx.cs

protected void Page_Load(object sender, EventArgs e) 
    { 
     Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1)); 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     Response.Cache.SetNoStore(); 
    } 

    protected void Timer1_Tick(object sender, EventArgs e) 
    { 
     Response.Redirect("Login.aspx")); 
    } 

Nguồn: http://geekswithblogs.net/Frez/archive/2010/05/18/back-button-issue-after-logout-in-asp.net.aspx

1

Khi người dùng nhấp nút đăng xuất, bạn nên viết dòng duy nhất để xóa phiên.

Session.Abondon(); 

và điều hướng đến trang đăng xuất hoặc trang đăng nhập. Vì vậy, khi người dùng nhấp vào nút đăng xuất, anh ấy không thể quay lại vì phiên của anh ấy đã bị xóa.

0

Để vô hiệu hóa các nút quay lại của trình duyệt viết mã dưới đây vào chủ phần tiêu đề trang như

<script language="JavaScript" type="text/javascript"> 
window.history.forward();    
</script> 
Các vấn đề liên quan