2015-03-30 21 views
12

kiểm soát hoặc Vô hiệu hoá trình duyệt Nút Quay lại với Javascript hoặc AngularJSkiểm soát hoặc Vô hiệu hoá trình duyệt Nút Quay lại với Javascript hoặc AngularJS

Ở đây tôi không hỏi một câu hỏi nhưng tôi muốn thể hiện một giải pháp để làm thế nào bạn có thể vô hiệu hóa và kiểm soát của trình duyệt Trở lại nút nếu bạn đang sử dụng AngularJS hoặc thậm chí với Javascript

+0

Về phần angularjs của bạn, chỉ cần sử dụng bài viết này http://stackoverflow.com/questions/15813850/detect-history-back-using-angular, có một loạt các các câu hỏi tương tự để không đăng ngay lập tức ... –

+0

@FerTo http://stackoverflow.com/help/self-answer –

Trả lời

14

Nếu bạn chỉ sử dụng Javascript bạn có thể kiểm tra như thế nào bạn có thể tắt nút Quay lại từ liên kết này:

http://jordanhollinger.com/2012/06/08/disable-the-back-button-using-html5/

Nhưng điều này mã trên sẽ không hoạt động tốt với AngularJS vì AngularJS sử dụng URL_Hash # ở chế độ nền, vì vậy ở đây tôi sẽ chỉ cách bạn có thể quay lại:

Trong mã Javascript chính của bạn (Không phải bên trong mã AngularJS hoặc bộ điều khiển), hãy đặt mã sau đây :

// *** Author: Wael Sidawi 
// **** Deactive Back Button **** 
var history_api = typeof history.pushState !== 'undefined'; 
// history.pushState must be called out side of AngularJS Code 
if (history_api) history.pushState(null, '', '#StayHere'); // After the # you should write something, do not leave it empty 

Và bây giờ bên AngularJS bạn Controler đặt listner sự kiện sau đây:

/** 
* Event-Listner for Back-Button 
*/ 
$scope.$on('$locationChangeStart', function(event, next, current){    
    // Here you can take the control and call your own functions: 
    alert('Sorry ! Back Button is disabled'); 
    // Prevent the browser default action (Going back): 
    event.preventDefault();    
}); 

tôi hy vọng nó có thể giúp bạn.

Trân trọng

Wael

+0

Tại sao không sử dụng $ location.replace()? – Musa

+1

@Wael, mã trên đang hoạt động để vô hiệu hóa nút quay lại. nhưng thậm chí vô hiệu hóa ng-href của nó trong trang đăng nhập – Hema

+0

@Hema Thật tiếc là vô hiệu hóa tất cả điều hướng trong góc ... –

Các vấn đề liên quan