利用者:Nanona15dobato/script/botreq.js/link.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
const originalStyles = new Map();
const aTags = document.querySelectorAll('a');
function highlightLinks() {
return new Promise((resolve) => {
aTags.forEach(a => {
originalStyles.set(a, a.style.cssText);
a.style.backgroundColor = 'yellow';
a.style.outline = '2px solid orange';
a.addEventListener('mouseover', handleMouseOver);
a.addEventListener('mouseout', handleMouseOut);
a.addEventListener('click', handleClick);
});
document.addEventListener('click', function handleDocumentClick(event) {
if (event.target.tagName.toLowerCase() === 'a') {
resolve(handleClick(event));
}
});
});
}
function handleMouseOver(event) {
event.target.style.backgroundColor = 'lightblue';
}
function handleMouseOut(event) {
event.target.style.backgroundColor = 'yellow';
}
function handleClick(event) {
event.preventDefault();
const url = event.target;
let link;
if (url.title){
link = decodeURIComponent(url.href.match(
/https?:\/\/...?\.wikipedia\.org(?:\/wiki\/([^?]+)|\/w\/index\.php\?title=([^?]+))/i
)[1]);
} else {
link = url.href;
}
const text = event.target.textContent.trim();
console.log(`リンク先: ${link}, 表示名: "${text}"`);
resetLinks();
return { link, text };
}
function resetLinks() {
aTags.forEach(a => {
a.style.cssText = originalStyles.get(a) || '';
a.removeEventListener('mouseover', handleMouseOver);
a.removeEventListener('mouseout', handleMouseOut);
a.removeEventListener('click', handleClick);
});
originalStyles.clear();
}