From 8830ce1b55feb5d0c005d708708ec44bdadc5ddd Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Sat, 14 Jan 2023 16:24:02 -0300 Subject: [PATCH] replace all links on mousedown instead of mouseenter -- and this allows us to track nostr: links added later to the page without any overhead. --- extension/nostr-provider.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/extension/nostr-provider.js b/extension/nostr-provider.js index bb6e1ee..eae0885 100644 --- a/extension/nostr-provider.js +++ b/extension/nostr-provider.js @@ -66,11 +66,9 @@ window.addEventListener('message', message => { // hack to replace nostr:nprofile.../etc links with something else let replacing = null -let links = document.querySelectorAll('a[href^="nostr:"]') -for (let i = 0; i < links.length; i++) { - links[i].addEventListener('mouseenter', replaceNostrSchemeLink) -} +document.addEventListener('mousedown', replaceNostrSchemeLink) async function replaceNostrSchemeLink(e) { + if (e.target.tagName !== 'A' || !e.target.href.startsWith('nostr:')) return if (replacing === false) return let response = await window.nostr._call('replaceURL', {url: e.target.href})