私は現在ファイルブラウザを作っています。ユーザーがファイルへのリンクをクリックすると、小さなウィンドウが開き、オプション(ダウンロードや表示など)が尋ねられます。私はこれをonclick属性を使って行っています。リンクをクリックするとjavascriptが実行されますが、この後にhrefで指定されたURLが開きます。私がしようとしているのは、リンクをクリックするとjavascriptが実行され、最終的に転送されます。しかし、リンクが右クリックされると、「リンクリンクの場所」は依然として利用できるはずです。 私は転送スクリプトをブロックすることでこれを解決しようと考えています。リンクが右クリックされるとJavaScriptは実行されず、リンクの場所をコピーすることができます。しかし、あなたがリンクをクリックしたままにすると、JavaScriptが実行され、リンクは開かれません。 これはjavascriptで可能ですか、それともこの動作を実現する他の方法がありますか?html - ブラウザがhrefで指定されたリンクを開くのを防ぐには?
答えて
リンク実行を防止するために、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>
はい、イベントのprevent the default actionが必要です。あなたのonclick属性にfalse
を返すことでそうすることができます。
Javascriptを= jQueryの。 jQueryのfalseの返り値は "伝播を停止してデフォルトを防ぐ"ことを意味しますが、Javascriptでは単に "伝播を停止"を意味します(デフォルトのリンククリックアクションは停止しません)。 http://www.w3.org/TR/DOM-Level-3-Events/#events-event-type-stopImmediatePropagation – machineghost
を参照してください。また、すべてのブラウザでそれが偽であるとは限りません。私がリンクしている仕様は "DOM Level 3"であり、AFAIK IE8はその仕様を完全に実装していません。 – machineghost
いいえ、私はeventListener(jQueryについては何も言わなかった)、私はOPが使用するonclick属性を意味しました。 – Bergi
:
function stopDefAction(evt) {
evt.preventDefault();
}
この回答は他のものよりも正確ですが、私がコメントしたように、falseを返しても、生のJavascriptでのデフォルトを防ぐことはできません(stopPropagation()と同じです)。ですから、preventDefaultの答えが唯一の正しいものです(falseを返すとそれをカットしません)。 – machineghost
お返事ありがとうございます。 –
:-)問題ありません! – machineghost
テキスト "のjavascript:無効(0)" でhref属性を置き換えることができますたとえば、:!
<a href="http://..." id="somebutton">...</a>
<script>
document.getElementById('somebutton').href="javascript:void(0)"
</script>
私はこれを試みたが、didnotの仕事。空のブラウザウィンドウが表示されます – Ziggler
- 1. WebViewがブラウザを開くのを防ぐ
- 2. Chromeがアプリを開くのを防ぐ方法リンク
- 3. Visual Studio Codeがエディタでabc.exeを開くのを防ぐには?
- 4. スクリプトの実行時にslimerjsブラウザが開くのを防ぐにはどうしたらいいですか?
- 5. ブラウザがPHPコードをコメントアウトするのを防ぐhtmlテキストエディタ
- 6. jQuery .html()が自動的にhref属性をエスケープするのを防ぐには?
- 7. ブラウザが保存されたhtmlページを開く方法
- 8. ブラウザのオートコンプリートを防ぐ方法は?
- 9. カスタムファイル形式を開くためのブラウザの指定方法は?
- 10. SQL:指定された列を除いてすべての重複を防ぐ
- 11. ブラウザ(ブラウザ名)は、このサイト(facebook)がポップアップウィンドウを開くのを防ぎました。
- 12. Serenium Javaでhrefリンクを開く
- 13. Pythonでプログラムを開くのを防ぐには?
- 14. Simulinkでシミュレーション中にXYグラフが開くのを防ぐ方法
- 15. Javascript:指定したdivでスペースキーのスクロールを防ぐ
- 16. は常にジャンプページを防ぐために、ブラウザのスクロールバーを表示
- 17. 複数のポップアップがクリックで開くのを防ぐ
- 18. ブートストラップ日付ピッカーで自動開くのを防ぐには?
- 19. Internet Explorerがドラッグされたファイルを開くのを防ぐ方法を教えてください。
- 20. $ _GET値を設定してhrefで新しいリンクを開く
- 21. WebViewで他のブラウザのリンクを開くことを防止する
- 22. ブラウザのないツールバーを使用した新しいウィンドウでhtmlリンクを開く
- 23. htmlテーブルの伸びを防ぐには
- 24. 外部のブラウザでpdfリンクを開く
- 25. WebStorm IDEがWebブラウザで '.html'ファイルをダブルクリックするのを防ぐにはどうすればいいですか?
- 26. OLEDBCommandクエリでExcelシートが開くのを防ぐ
- 27. Selenium Webdriverを使用して指定されたURLのブラウザを開くことができません
- 28. ブラウザを防ぐ方法Ctrl + U?
- 29. git vimdiffがファイルを読み取り専用で開くのを防ぐには?
- 30. SQLインジェクションを防ぐためにパラメータ化されたSQLクエリを書くには?
Javascript!= jQuery。 jQueryのfalseの返り値は "伝播を停止してデフォルトを防ぐ"ことを意味しますが、Javascriptでは単に "伝播を停止"を意味します(デフォルトのリンククリックアクションは停止しません)。 http://www.w3.org/TR/DOM-Level-3-Events/#events-event-type-stopImmediatePropagation – machineghost
を参照してください。また、すべてのブラウザでそうであっても偽を返すとは限りません。私がリンクしている仕様は "DOM Level 3"であり、AFAIK IE8はその仕様を完全に実装していません。 – machineghost
私は何とかjQueryを参照していません。リンク 'Test 'を作成すると、私がテストに利用できるすべてのブラウザをクリックしても何もしません。私は虚偽を返すことが悪い習慣であったこと、または今までは状況下では機能しないことを認識していませんでした。そうであれば、お詫び申し上げますが、より理解しやすいリソースを提供してください。正しい見出しを教えてください。あなたのリンクから関連性のあるものは抽出できません。 – Armatus