web-dev-qa-db-ja.com

html-ブラウザがhrefで指定されたリンクを開かないようにするにはどうすればよいですか?

私は現在ファイルブラウザを作成しています。ユーザーがファイルへのリンクをクリックすると、小さなウィンドウが開き、オプション(ダウンロードや表示など)を要求します。 onclick属性を使用してこれを実行しました。リンクをクリックするとJavaScriptが実行されますが、その後、hrefで指定されたURLが開きます。私がやろうとしているのは、リンクをクリックするとjavascriptが実行され、最終的に転送されるということです。ただし、リンクを右クリックしても、「リンクの場所をコピー」は引き続き使用できます。転送スクリプト側をブロックすることでこれを解決することを考えています。したがって、リンクが右クリックされた場合、JavaScriptは実行されず、リンクの場所をコピーできます。ただし、リンクを左クリックすると、JavaScriptが実行され、リンクは開かれません。それはjavascriptで可能ですか、それともこの動作を実現する他の方法はありますか?

12
jangxx

リンクの実行を防ぐための1つの方法は、「onclick」メソッドがfalseを返すようにすることです。

例えば:

_<a href="http://..." onclick="return clickfunc()">...</a>
_

clickfunc()falseを返す場合、リンクをクリックしても「http:// ...」には移動しません。

あなたはおそらくそれをもっと好きに扱っていますが

_<a href="http://..." id="somebutton">...</a>
<script>
document.getElementById('somebutton').onclick = function() { 
      ... 
      else { return false; }
};
</script>
_
16
Armatus

クリック機能のデフォルトを防ぐ必要があります。

function stopDefAction(evt) {  
  evt.preventDefault();  
} 
9
bobek

次のように、href属性をテキスト「javascript:void(0)」に置き換えることができます。

<a href="http://..." id="somebutton">...</a>
<script>
document.getElementById('somebutton').href="javascript:void(0)"
</script>
1
lexa-b

はい、イベントの デフォルトのアクションを防ぐ する必要があります。これを行うには、onclick属性でfalseを返します。

0
Bergi