1

条件に基づいてハイパーリンクを無効にする方法

 var mydiv = document.getElementById("myDiv");      
 var aTag = document.createElement('a');       
 aTag.setAttribute('href',"yourlink.htm");        
 aTag.innerHTML = "link text";      
 mydiv.innerHTML="";      
 mydiv.innerHTML=aTag;  

ここでaTagを無効にする必要があると言います。

ログオンしたユーザーに基づいて、無効にするか有効にする必要があります。

4

2 に答える 2

2

無効化された属性を設定することにより、リンクを無効化できます(アンカー要素では無効ですが、場合によっては機能します)。

アンカーの無効な属性のセットアップをテストします:http://jsfiddle.net/TgjnM/

できれば、リンクを完全に削除して、リンクに含まれているテキストに置き換えることができます。リンクをプレーンテキストに置き換えるには、のinnerHTMLをmydivテキストに設定します(したがって、ハイパーリンクを削除します)。

リンクのオン/オフを切り替えることができる場合は、コメントで提案されている@Oleg V. Volkovのようにフォーム要素(ハイパーリンクではない)を検討してください。これが1回限りの決定である場合(つまり、ページごとに複数回発生することはない場合)、リンクをテキストに置き換えます。

ログオンしたユーザーに基づいて、無効にするか有効にする必要があります。

その場合、Webブラウザーではなく、サーバー上でページを異なる方法でレンダリングします。

于 2012-08-10T11:39:30.527 に答える
2

これはうまくいくはずです

 if(condition)
     disableLink();
else
   showLink();



function disableLink()
        {

        document.getElementById('Link1').disabled=true;
        document.getElementById('Link1').removeAttribute('href');    
        document.getElementById('Link1').style.textDecoration = 'none';
        document.getElementById('Link1').style.cursor = 'default';
        }

        function showLink()
        {
            document.getElementById('Link1').disabled=false;
        //assign href dynamically
        document.getElementById('Link1').href = "somepage.html";
        document.getElementById("Link1").style.textDecoration = "underline";
        document.getElementById("Link1").style.cursor = "hand";
        }
于 2012-08-10T11:48:00.407 に答える