From 22393ac858b3717050839e42bc2d61494b7875cc Mon Sep 17 00:00:00 2001 From: hackademix Date: Sun, 21 Jul 2019 02:24:56 +0200 Subject: Handle replacement clicks even if a content placeholder is obstructed. --- src/content/PlaceHolder.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/content/PlaceHolder.js b/src/content/PlaceHolder.js index b7090ce..69db5dd 100644 --- a/src/content/PlaceHolder.js +++ b/src/content/PlaceHolder.js @@ -72,9 +72,14 @@ var PlaceHolder = (() => { static listen() { PlaceHolder.listen = () => {}; window.addEventListener("click", ev => { - if (ev.button === 0) { - let replacement = ev.target.closest("a.__NoScript_PlaceHolder__"); - let ph = replacement && ev.isTrusted && replacement._placeHolderObj; + if (ev.button === 0 && ev.isTrusted) { + let ph, replacement; + for (let e of document.elementsFromPoint(ev.clientX, ev.clientY)) { + if (ph = e._placeHolderObj) { + replacement = e; + break; + } + } if (ph) { ev.preventDefault(); ev.stopPropagation(); -- cgit v1.2.3