Add: isVisible check for close selectors

Modify: doTarget - Revert to initial code
This commit is contained in:
Corentin Barreau 2019-09-25 16:19:41 +02:00
parent 5c5743ea11
commit fb30fb9aa3

View file

@ -61,7 +61,9 @@ class UmbraBehavior {
if (closeSelector) { if (closeSelector) {
var closeTargets = documents[j].querySelectorAll(closeSelector); var closeTargets = documents[j].querySelectorAll(closeSelector);
for (var i = 0; i < closeTargets.length; i++) { for (var i = 0; i < closeTargets.length; i++) {
this.doTarget(closeTargets[i], "click", "close"); if (this.isVisible(closeTargets[i])) {
closeTargets[i].click();
}
} }
} }
@ -85,7 +87,7 @@ class UmbraBehavior {
} }
var where = this.aboveBelowOrOnScreen(doTargets[i]); var where = this.aboveBelowOrOnScreen(doTargets[i]);
if (where == 0) { if (where == 0) {
this.doTarget(doTargets[i], action, 'open'); this.doTarget(doTargets[i], action);
didSomething = true; didSomething = true;
break; break;
} else if (where > 0) { } else if (where > 0) {
@ -136,7 +138,7 @@ class UmbraBehavior {
return elem && !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length); return elem && !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);
} }
doTarget(target, action, type) { doTarget(target, action) {
// console.log("doing " + action + target.outerHTML); // console.log("doing " + action + target.outerHTML);
// do mouse over event on target // do mouse over event on target
// since some urls are requsted only on // since some urls are requsted only on
@ -153,9 +155,7 @@ class UmbraBehavior {
// Only push the element to alreadyDone if it's // Only push the element to alreadyDone if it's
// an element we want to open. No need to track // an element we want to open. No need to track
// the close selectors // the close selectors
if (type == "open") {
this.alreadyDone.push(target); this.alreadyDone.push(target);
}
this.idleSince = null; this.idleSince = null;
} }