aboutsummaryrefslogtreecommitdiffstats
path: root/library/jquery.AreYouSure/ays-beforeunload-shim.js
blob: cb864cdeb45c4ee5c63d1900585071f4a8bbd65d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*!
 * An experimental shim to partially emulate onBeforeUnload on iOS.
 * Part of https://github.com/codedance/jquery.AreYouSure/
 *
 * Copyright (c) 2012-2014, Chris Dance and PaperCut Software http://www.papercut.com/
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Author:  chris.dance@papercut.com
 * Date:    19th May 2014
 */
$(function() {
  if (!navigator.userAgent.toLowerCase().match(/iphone|ipad|ipod|opera/)) {
    return;
  }
  $('a').bind('click', function(evt) {
    var href = $(evt.target).closest('a').attr('href');
    if (href !== undefined && !(href.match(/^#/) || href.trim() == '')) {
      var response = $(window).triggerHandler('beforeunload', response);
      if (response && response != "") {
        var msg = response + "\n\n"
          + "Press OK to leave this page or Cancel to stay.";
        if (!confirm(msg)) {
          return false;
        }
      }
      window.location.href = href;
      return false;
     }
  });
});