Javascript或jquery事件用于检测浏览器的后退按钮

时间:2016-06-17 02:41:28

标签: javascript jquery

我有一些关于如何在点击浏览器的后退按钮时订阅的研究,但遗憾的是我无法找到问题的正确答案

我试过这样做:

var $window = $(window);

    $window.on('beforeunload', function()
    {
        commitFieldChanges();
    }); 

我使用了需要JS来实现这个

,另一个解决方法是

$(window).bind('beforeunload', function(){ 
    return '';
});

但是所有这些都不起作用,因为我的应用程序是单页面应用程序。因此,当点击后退按钮时,页面并没有真正加载,因为我们使用在URL中的应用程序中导航,所以你觉得怎么样?对我的问题有任何建议吗?

1 个答案:

答案 0 :(得分:1)

这是我目前用于我的应用程序的一种方式,用于检测某些页面上的后退按钮,该页面旨在支持桌面和移动设备的现代跨浏览器。

<强>主页

var isFromView = false;
$(function() {
  // Check if browser supports LocalStorage
  if(typeof(Storage) !== 'undefined') {
    var currentValue = localStorage.getItem('fromSource');
    if (currentValue && currentValue === 'view') {
       // Set isFromDetail to true
       isFromView = true;
    }
    else {
       localStorage.removeItem('fromSource');
    }

    try {
       // Set fromSource in localStorage.
       localStorage.setItem('fromSource', 'home');
    }
    catch (err) {
       // Need this for safari mobile private mode !!
    }
  }
});

<强>的ViewPage

$(function() {
  // Check if browser supports LocalStorage
  if(typeof(Storage) !== 'undefined') {
    try {
       // Set fromSource in localStorage.
       localStorage.setItem('fromSource', 'view');
    }
    catch (err) {
       // Need this for safari mobile private mode !!
    }
  }
});

++:我已经使用历史API来对后退按钮执行操作。但是没有成功支持某些移动设备浏览器。