It is quite simple to register a click event and determine if an A-element has been left clicked:
window.addEventListener('click', ()=>{
if (event.which !== 1 && event.which !== 2) // left of middle click
return
var element = event.target
if (element.tagName !== 'A') {
while(element.parentNode) {
element = element.parentNode
if (element.tagName === 'A')
break
}
if (element.tagName !== 'A')
return
}
console.log('A-Element was left clicked')
})
But my code can't detect it when the user opens a link via right click
->open link
or when a link is opened using JavaScript (window.open()
, location.href
, ...).
Is right click a Javascript event? doesn't solve my problem, because right clicks themselves don't open links.
So, I'm wondering if there is a good way to find out whenever a link is opened, not only if it is clicked.
I've found browser.tabs.onUpdated which is an event that gets fired whenever a tab is updated. It's extension-exclusive though.