diff --git a/brozzler/js-templates/simpledo.js.j2 b/brozzler/js-templates/simpledo.js.j2 index 8a0a819..17309e0 100644 --- a/brozzler/js-templates/simpledo.js.j2 +++ b/brozzler/js-templates/simpledo.js.j2 @@ -22,6 +22,13 @@ var umbraBehavior = { IDLE_TIMEOUT_SEC : 10, idleSince : null, + // https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js + // n.b. returns true for elements with visibility:hidden, which occupy + // screen real estate but are not visible, or clickable with the ui + isVisible : function(elem) { + return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length); + }, + intervalFunc : function() { var didSomething = false; var somethingLeftBelow = false; @@ -43,6 +50,9 @@ var umbraBehavior = { var doTargets = documents[j].querySelectorAll(cssSelector); for ( var i = 0; i < doTargets.length; i++) { + if (!this.isVisible(doTargets[i])) { + continue; + } if (doTargets[i].umbraDone && !doUntilTimeout) { continue; }