例えば、こんなふうに書けます。
window.addEventListener("DOMContentLoaded", ev => {
document.querySelectorAll('a[href*="under_construction"]').forEach(a => {
a.addEventListener("click", ev => {
alert("未作成のため、お問い合わせください");
ev.preventDefault();
});
});
});
ページの読み込みが完了したときに、リンク先の URL に "under_construction" が含まれているリンクのタグに、クリックしたときのデフォルトの動作(その URL に移動する)を無効にします。
ただ、リンクのタグに別の javascript が結びついている場合、その処理が動いてしまいます。
例えば、クリックしたときに何かしらの処理をしてから、javascript でページを移動するようにしている場合には、ページが移動してしまいます。
それも無効にしたい場合には、もうひと手間かけて、以下のようなコードにします。
window.addEventListener("DOMContentLoaded", ev => {
document.querySelectorAll('a[href*="under_construction"]').forEach(a => {
const inner = document.createElement("span");
inner.innerHTML = a.innerHTML;
a.innerHTML = "";
a.appendChild(inner);
inner.addEventListener("click", ev => {
alert("未作成のため、お問い合わせください");
ev.stopPropagation();
ev.preventDefault();
});
});
});
ちなみに、メッセージを出さなくても良いのであれば、CSS だけでも実現できます。
a[href*="under_construction"] {
pointer-events: none;
}
リンク先の URL に "under_construction" が含まれているリンクのタグが、クリックされてもクリックがなかったことにしてしまうスタイルです。