JSFiddle - React, Tailwind, and code Playground
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<button type="button">Click all links</button>
<ul>
<li><a href="https://example.com"></a></li>
<li><a href="javascript:openLink(1)"></a></li>
<li><a href="javascript:openLink(2)"></a></li>
<li><a href="javascript:openLink(3)"></a></li>
<li><a href="javascript:openLinkSlow(4)"></a></li>
<li><a href="javascript:openLinkAsync(5)"></a></li>
</ul>
</body>
</html>
CSS
a::after {
content: attr(href);
}
JavaScript
function openLink(id) {
window.open(`https://www.google.com.tw/search?q=${id}`, '_blank', 'noopenner');
}
function openLinkSlow(id) {
// sync code that takes a long time
let sum = 0;
for (let i = 0, I = 10**9; i < I; i++) {
sum += i;
}
window.open(`https://www.google.com.tw/search?q=${id}`, '_blank', 'noopenner');
}
async function openLinkAsync(id) {
setTimeout(() => {
window.open(`https://www.google.com.tw/search?q=${id}`, '_blank', 'noopenner');
}, 1000);
}
document.querySelector('button').addEventListener('click', (event) => {
document.querySelectorAll('a[href], area[href]').forEach(a => a.click());
});