diff options
Diffstat (limited to 'app/src/main/assets/js/click_a.js')
-rw-r--r-- | app/src/main/assets/js/click_a.js | 69 |
1 files changed, 36 insertions, 33 deletions
diff --git a/app/src/main/assets/js/click_a.js b/app/src/main/assets/js/click_a.js index 1ced820a..e3ea7f31 100644 --- a/app/src/main/assets/js/click_a.js +++ b/app/src/main/assets/js/click_a.js @@ -1,57 +1,60 @@ -// we will handle click events -if (!window.hasOwnProperty('frost_click_a')) { - console.log('Registering frost_click_a'); - window.frost_click_a = true; +"use strict"; - var prevented = false; +(function () { - var _frostAClick = function(e) { + /* + * On top of the click event, we must stop it for long presses + * Since that will conflict with the context menu + * Note that we only override it on conditions where the context menu + * Will occur + */ + var _frostAClick, _frostPreventClick, clickTimeout, prevented; + prevented = false; + _frostAClick = function _frostAClick(e) { /* * Commonality; check for valid target */ - var element = e.target || e.srcElement; - - if (element.tagName !== 'A') element = element.parentNode; - //Notifications is two layers under - if (element.tagName !== 'A') element = element.parentNode; - if (element.tagName === 'A') { + var element, url; + element = e.target || e.srcElement; + if (element.tagName !== "A") { + element = element.parentNode; + } + // Notifications is two layers under + if (element.tagName !== "A") { + element = element.parentNode; + } + if (element.tagName === "A") { if (!prevented) { - var url = element.getAttribute('href'); - console.log('Click Intercept', url); + url = element.getAttribute("href"); + console.log("Click Intercept " + url); // if frost is injected, check if loading the url through an overlay works - if (typeof Frost !== 'undefined' && Frost.loadUrl(url)) { - e.stopPropagation(); - e.preventDefault(); + if ((typeof Frost !== "undefined" && Frost !== null ? Frost.loadUrl(url) : void 0) === true) { + e.stopPropagation(); + e.preventDefault(); } } else { - console.log('Click Intercept Prevented'); + console.log("Click Intercept Prevented"); } } - } + }; - /* - * On top of the click event, we must stop it for long presses - * Since that will conflict with the context menu - * Note that we only override it on conditions where the context menu - * Will occur - */ - var _frostPreventClick = function() { - console.log('Click prevented') + _frostPreventClick = function _frostPreventClick() { + console.log("Click prevented"); prevented = true; - } + }; - document.addEventListener('click', _frostAClick, true); + document.addEventListener("click", _frostAClick, true); - var clickTimeout; + clickTimeout = void 0; - document.addEventListener('touchstart', function _frostStart(e) { + document.addEventListener("touchstart", function (e) { clickTimeout = setTimeout(_frostPreventClick, 400); }, true); - document.addEventListener('touchend', function _frostEnd(e) { + document.addEventListener("touchend", function (e) { prevented = false; clearTimeout(clickTimeout); }, true); -} +}).call(undefined);
\ No newline at end of file |