-
Notifications
You must be signed in to change notification settings - Fork 0
/
content.js
45 lines (38 loc) · 1.1 KB
/
content.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
function addLinkHoverListeners() {
document.querySelectorAll('a').forEach(link => {
link.addEventListener('mouseover', handleMouseOver);
link.addEventListener('mouseout', handleMouseOut);
});
}
function handleMouseOver(event) {
const link = event.target;
const realURL = link.href;
if (typeof realURL === 'string' && realURL.trim() !== '') {
let popup = document.createElement('div');
popup.id = 'show-that-link-popup';
popup.textContent = realURL;
document.body.appendChild(popup);
const mouseX = event.pageX;
const mouseY = event.pageY;
popup.style.left = `${mouseX + 10}px`;
popup.style.top = `${mouseY + 10}px`;
}
}
function handleMouseOut(event) {
const popup = document.getElementById('show-that-link-popup');
if (popup) {
popup.remove();
}
}
chrome.storage.sync.get('extensionDisabled', function(data) {
if (!data.extensionDisabled) {
addLinkHoverListeners();
const observer = new MutationObserver(() => {
addLinkHoverListeners();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
}
});