diff --git a/4chan_x.user.js b/4chan_x.user.js index 18ea61cd5..55dfbbe6e 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -514,6 +514,9 @@ } size = unit > 1 ? Math.round(size * 100) / 100 : Math.round(size); return "" + size + " " + ['B', 'KB', 'MB', 'GB'][unit]; + }, + hidden: function() { + return d.hidden || d.oHidden || d.mozHidden || d.webkitHidden; } }); @@ -1837,7 +1840,7 @@ if (QR.captcha.isEnabled && /captcha|verification/i.test(el.textContent)) { $('[autocomplete]', QR.el).focus(); } - if (d.hidden || d.oHidden || d.mozHidden || d.webkitHidden) { + if ($.hidden()) { return alert(el.textContent); } }, @@ -3040,9 +3043,7 @@ return setTimeout(Updater.update, 500); }, visibility: function() { - var state; - state = d.visibilityState || d.oVisibilityState || d.mozVisibilityState || d.webkitVisibilityState; - if (state !== 'visible') { + if ($.hidden()) { return; } Updater.unsuccessfulFetchCount = 0; @@ -3078,7 +3079,7 @@ return Updater.scrollBG = this.checked ? function() { return true; } : function() { - return !(d.hidden || d.oHidden || d.mozHidden || d.webkitHidden); + return !$.hidden(); }; }, load: function() { @@ -3174,7 +3175,7 @@ var i, j; i = +Conf['Interval']; j = Math.min(this.unsuccessfulFetchCount, 9); - if (!(d.hidden || d.oHidden || d.mozHidden || d.webkitHidden)) { + if (!$.hidden()) { j = Math.min(j, 6); } return Math.max(i, [5, 10, 15, 20, 30, 60, 90, 120, 240, 300][j]); diff --git a/script.coffee b/script.coffee index 5a49378a0..f098cd9c6 100644 --- a/script.coffee +++ b/script.coffee @@ -396,6 +396,8 @@ $.extend $, # Round to an integer otherwise. Math.round size "#{size} #{['B', 'KB', 'MB', 'GB'][unit]}" + hidden: -> + d.hidden or d.oHidden or d.mozHidden or d.webkitHidden $.cache.requests = {} @@ -1419,7 +1421,7 @@ QR = if QR.captcha.isEnabled and /captcha|verification/i.test el.textContent # Focus the captcha input on captcha error. $('[autocomplete]', QR.el).focus() - alert el.textContent if d.hidden or d.oHidden or d.mozHidden or d.webkitHidden + alert el.textContent if $.hidden() cleanError: -> $('.warning', QR.el).textContent = null @@ -2463,8 +2465,7 @@ Updater = Updater.unsuccessfulFetchCount = 0 setTimeout Updater.update, 500 visibility: -> - state = d.visibilityState or d.oVisibilityState or d.mozVisibilityState or d.webkitVisibilityState - return if state isnt 'visible' + return if $.hidden() # Reset the counter when we focus this tab. Updater.unsuccessfulFetchCount = 0 if Updater.timer.textContent < -Conf['Interval'] @@ -2492,7 +2493,7 @@ Updater = if @checked -> true else - -> !(d.hidden or d.oHidden or d.mozHidden or d.webkitHidden) + -> ! $.hidden() load: -> switch @status when 404 @@ -2570,7 +2571,7 @@ Updater = getInterval: -> i = +Conf['Interval'] j = Math.min @unsuccessfulFetchCount, 9 - unless d.hidden or d.oHidden or d.mozHidden or d.webkitHidden + unless $.hidden() # Don't increase the refresh rate too much on visible tabs. j = Math.min j, 6 Math.max i, [5, 10, 15, 20, 30, 60, 90, 120, 240, 300][j]