Tôi đã đọc các bài đăng khác thảo luận các cách mà các công nghệ khác dọn sạch cookie trình duyệt khi trình duyệt đóng cửa, nhưng không ai trong số chúng hiển thị cách để AngularJS thực hiện việc này. Làm cách nào để kích hoạt phương pháp xóa cookie trong AngularJS để chạy khi trình duyệt bị đóng?AngularJS cách để xóa tất cả cookie khi trình duyệt bị đóng
Trong AngularJS 1.4.8, bạn có thể xóa cookie bằng cú pháp $cookies.remove('keyname')
. Tôi có thể viết một phương pháp để loại bỏ tất cả các cookie theo tên. Nhưng làm cách nào để đảm bảo rằng phương pháp xóa cookie được gọi bất cứ khi nào trình duyệt bị đóng? Cú pháp có khác gì không nếu tôi muốn phương thức được gọi khi tab trình duyệt bị đóng?
nỗ lực không ngừng:
Theo @ của User2341963 gợi ý, tôi thêm mã loại bỏ cookie đến phương pháp run
trong module chính của ứng dụng. Mã chính xác tương tự chạy đúng khi tôi đặt nó ở phương thức logout()
ở nơi khác trong ứng dụng, nhưng khi tôi đặt điểm ngắt trong trình gỡ lỗi firefox và đóng trình duyệt, tôi thấy mã loại bỏ cookie không bao giờ chạy khi trình duyệt bị đóng. Tôi thực hiện những thay đổi cụ thể nào đối với mã để gỡ bỏ tất cả các cookie của AngularJS khi trình duyệt bị đóng?
Đây là mã cho các mô-đun chính của ứng dụng, bao gồm cả run()
phương pháp:
angular
.module('hello', [ 'ngRoute', 'auth', 'home', 'secure', 'public1', 'navigation' ])
.config(
function($routeProvider, $httpProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider
.when('/', {
templateUrl : 'js/home/home.html',
controller : 'home'
})//plus other routes
.otherwise('/');
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
}
).run(['$cookies', '$window', '$log', function($cookies, auth, $window, $log) {
//other stuff
$window.onbeforeunload = function() {
// Clearing all cookies now!
$cookies.remove("AUTH1");
$cookies.remove("AUTH2");
$cookies.remove('procStep');
$cookies.remove('usrname');
$cookies.remove('exists');
$cookies.remove('wid');
};
}]);
có lẽ một cái gì đó như [làm thế nào để kích hoạt một chức năng trên cửa sổ gần bằng angularjs] (http://stackoverflow.com/questions/30345446/how-to-trigger-a-chức năng-trên-cửa sổ-close-sử dụng-angularjs)? Về cơ bản, hãy cài đặt hàm window.onbeforeunload – user2718281
sử dụng cookie phiên. Đừng lo lắng về việc dọn dẹp – charlietfl
@ user2341963 Tôi nên đặt bộ điều khiển đó vào? Ứng dụng này có nhiều bộ điều khiển. Module chính cho ứng dụng chỉ có 'module()', '.config()' và '.run() {}' trong đó. – CodeMed