私は現在ファイルブラウザを作成しています。ユーザーがファイルへのリンクをクリックすると、小さなウィンドウが開き、オプション(ダウンロードや表示など)を要求します。 onclick属性を使用してこれを実行しました。リンクをクリックするとJavaScriptが実行されますが、その後、hrefで指定されたURLが開きます。私がやろうとしているのは、リンクをクリックするとjavascriptが実行され、最終的に転送されるということです。ただし、リンクを右クリックしても、「リンクの場所をコピー」は引き続き使用できます。転送スクリプト側をブロックすることでこれを解決することを考えています。したがって、リンクが右クリックされた場合、JavaScriptは実行されず、リンクの場所をコピーできます。ただし、リンクを左クリックすると、JavaScriptが実行され、リンクは開かれません。それはjavascriptで可能ですか、それともこの動作を実現する他の方法はありますか?
リンクの実行を防ぐための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>
_
クリック機能のデフォルトを防ぐ必要があります。
function stopDefAction(evt) {
evt.preventDefault();
}
次のように、href属性をテキスト「javascript:void(0)」に置き換えることができます。
<a href="http://..." id="somebutton">...</a>
<script>
document.getElementById('somebutton').href="javascript:void(0)"
</script>
はい、イベントの デフォルトのアクションを防ぐ する必要があります。これを行うには、onclick属性でfalse
を返します。