diff options
author | Thomas Mueller <thomas.mueller@tmit.eu> | 2013-01-11 16:44:25 +0100 |
---|---|---|
committer | Thomas Mueller <thomas.mueller@tmit.eu> | 2013-01-11 16:44:25 +0100 |
commit | 362860c5b5a919dfbefc9aa2873618dc0fc34fda (patch) | |
tree | 49451a6c99d3c6de2b1d746e78f5ac0e48dfa639 | |
parent | 23896a72906f1dca08d8413ea9a339b5d74aa658 (diff) | |
download | nextcloud-server-362860c5b5a919dfbefc9aa2873618dc0fc34fda.tar.gz nextcloud-server-362860c5b5a919dfbefc9aa2873618dc0fc34fda.zip |
adding jquery-visibility
https://github.com/mathiasbynens/jquery-visibility
MIT and GPL licensed
-rw-r--r-- | apps/files/js/jquery-visibility.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/apps/files/js/jquery-visibility.js b/apps/files/js/jquery-visibility.js new file mode 100644 index 00000000000..a824bf68730 --- /dev/null +++ b/apps/files/js/jquery-visibility.js @@ -0,0 +1,32 @@ +/*! http://mths.be/visibility v1.0.5 by @mathias */ +(function (window, document, $, undefined) { + + var prefix, + property, +// In Opera, `'onfocusin' in document == true`, hence the extra `hasFocus` check to detect IE-like behavior + eventName = 'onfocusin' in document && 'hasFocus' in document ? 'focusin focusout' : 'focus blur', + prefixes = ['', 'moz', 'ms', 'o', 'webkit'], + $support = $.support, + $event = $.event; + + while ((property = prefix = prefixes.pop()) != undefined) { + property = (prefix ? prefix + 'H' : 'h') + 'idden'; + if ($support.pageVisibility = typeof document[property] == 'boolean') { + eventName = prefix + 'visibilitychange'; + break; + } + } + + $(/blur$/.test(eventName) ? window : document).on(eventName, function (event) { + var type = event.type, + originalEvent = event.originalEvent, + toElement = originalEvent.toElement; +// If it’s a `{focusin,focusout}` event (IE), `fromElement` and `toElement` should both be `null` or `undefined`; +// else, the page visibility hasn’t changed, but the user just clicked somewhere in the doc. +// In IE9, we need to check the `relatedTarget` property instead. + if (!/^focus./.test(type) || (toElement == undefined && originalEvent.fromElement == undefined && originalEvent.relatedTarget == undefined)) { + $event.trigger((property && document[property] || /^(?:blur|focusout)$/.test(type) ? 'hide' : 'show') + '.visibility'); + } + }); + +}(this, document, jQuery)); |