すべてのハイパーリンクを一時的に無効にし、ポップアップ div がなくなったら再度有効にする必要があるプロジェクトに取り組んでいます。私が書いたこの関数を使用して、すべてのリンクを正常に無効にすることができます。
function disableHyperlinks(){
link_targets = Array();
var anchors = document.getElementsByTagName("a");
for(var i = 0; i < anchors.length; i++){
link_targets.push(anchors[i].href);
anchors[i].href= "#";
}
}
また、すべての URL が保存されるため、後でこの関数を使用して元に戻すことができます。
function enableHyperlinks(){
var anchors = document.getElementsByTagName("a");
for(var i = 0; i < anchors.length; i++){
anchors[i].href= link_targets[i];
}
}
上記のコードは問題なく動作するようで、すべてのリンクを削除し、問題なく元に戻しますが、問題は、リンクをクリックした後に「有効化」コードを実行すると、まるで JavaScript のようになることです。リンクを元のリンク先に戻してから、クリックを登録します。したがって、この方法で「無効化」されているにもかかわらず、リンクはページから離れてしまいます。
問題はここに示されています
白い背景の赤い「L」をクリックして、選択用に作成した JavaScript を有効にします。マウスを上に移動すると、青い破線の境界線が表示されます。Web ページの一部を「選択」できるようにする必要があります。リンクもクリックされた場合に別のページにリダイレクトせずに..どうすればこれを適切に行うことができるでしょうか?
(私はJQueryを避けようとしていることに注意してください)