Attualmente sto facendo un filebrowser. Se l'utente fa clic su un collegamento a un file, apre una piccola finestra e chiede le opzioni (come download e visualizzazione). L'ho fatto usando l'attributo onclick. Se clicco sul link, viene eseguito javascript, ma in seguito si apre l'url specificato in href. Quello che sto cercando di fare è: se si fa clic sul link javascript viene eseguito e in avanti si alla fine. Ma se il collegamento si interrompe correttamente, la "posizione del collegamento alla copia" dovrebbe essere ancora disponibile. Sto pensando di risolvere questo bloccando il forward scriptside. Quindi, se il collegamento viene eseguito correttamente, non viene eseguito javascript ed è possibile copiare il percorso del collegamento. Ma se hai lasciato clic sul collegamento viene eseguito javascript e il collegamento non viene aperto. È possibile con javascript o esiste un altro modo per ottenere questo comportamento?html - Come impedire al browser di aprire il link specificato in href?
risposta
Per impedire l'esecuzione del collegamento, un modo è consentire al metodo "onclick" di restituire false
.
Ad esempio:
<a href="http://..." onclick="return clickfunc()">...</a>
If clickfunc()
rendimenti false
, un clic sul link non dirigeranno a "http: // ..."
Anche se si sono probabilmente maneggiarlo più come
<a href="http://..." id="somebutton">...</a>
<script>
document.getElementById('somebutton').onclick = function() {
...
else { return false; }
};
</script>
Sì, è necessario prevent the default action dell'evento. Puoi farlo restituendo false
nel tuo attributo onclick.
Javascript = jQuery. In jQuery return false significa "stop propagation e prevent default", ma in Javascript significa semplicemente "stop propagation" (che non interromperà l'azione predefinita di click-link). Vedi http://www.w3.org/TR/DOM-Level-3-Events/#events-event-type-stopImmediatePropagation – machineghost
E come nota a margine, non sono sicuro che return false lo faccia anche in tutti i browser; la specifica che ho collegato era "DOM Level 3" e AFAIK IE8 non ha nemmeno implementato completamente quella specifica. – machineghost
No, non ho detto eventListener (e niente su jQuery), intendevo l'attributo onclick utilizzato dall'OP. – Bergi
si deve evitare che di default dalla funzione di clic:
function stopDefAction(evt) {
evt.preventDefault();
}
Questa risposta è più vicina alla correzione rispetto alle altre, ma come ho commentato su di esse, return false NON equivale a prevenire il default in Javascript non elaborato (equivale a stopPropagation()). Quindi la tua risposta di preventDefault è l'unica corretta (return false non lo taglierà). – machineghost
Grazie, cambiando la risposta. –
:-) nessun problema! – machineghost
è possibile sostituire attributo href dal testo "javascript: void (0)", per esempio:!
<a href="http://..." id="somebutton">...</a>
<script>
document.getElementById('somebutton').href="javascript:void(0)"
</script>
Ho provato questo, ma non ha funzionato. Ottengo la finestra del browser vuota – Ziggler
- 1. Come aprire il link in un altro browser?
- 2. Aprire il browser al URL specificato utilizzando ACTION_VIEW non funziona quando Chrome è il browser predefinito
- 3. Come aprire il link al file pdf in una nuova scheda utilizzando html
- 4. Come posso aprire qualsiasi app dal mio browser (Chrome) in Android? Cosa devo fare con il link A Href?
- 5. link di ancoraggio HTML - href e onclick entrambi?
- 6. Come impedire al browser di chiedere la favicon?
- 7. Impedire al browser HTML di ritagliare il testo e visualizzare 1/2 una riga di testo
- 8. È possibile impedire al browser di seguire il collegamento quando viene attivato l'onclick dell'elemento figlio?
- 9. Aggiungere il tipo mime al collegamento HTML
- 10. come dare un href all'interno del tag button in html
- 11. link href clic utilizzando capibara
- 12. un link href sulla img
- 13. regex per cambiare link href in minuscolo
- 14. Ottieni tutti i link href in DOM
- 15. Modificare il link href prima di inviare la richiesta
- 16. come codificare l'attributo href in HTML
- 17. Come scrivere tag HTML in "link" CakePHP
- 18. WebView link click apri il browser predefinito
- 19. Come aprire il file HTML usando Java?
- 20. TCPServer invia HTML al browser
- 21. desidera aprire il collegamento nel browser esterno di WP7
- 22. CakePHP HTML Link
- 23. Come aprire una nuova finestra popup facendo clic su un link di azione html in MVC?
- 24. Trova contenuto di link href e l'URL in Java
- 25. Come impedire al movimento circolare di spostarsi
- 26. Come impedire al browser di ricordare il contenuto del campo di testo?
- 27. PhoneGap - link aperto in del browser
- 28. Trucchi per impedire al telefono di dormire nel browser web mobile utilizzando JavaScript/HTML?
- 29. Cosa c'e 'nel link al frontespizio?
- 30. Aggiunta di link a href a un elemento utilizzando css
Javascript! = JQuery. In jQuery return false significa "stop propagation e prevent default", ma in Javascript significa semplicemente "stop propagation" (che non interromperà l'azione predefinita di click-link). Vedi http://www.w3.org/TR/DOM-Level-3-Events/#events-event-type-stopImmediatePropagation – machineghost
E come nota a margine, non sono sicuro che return false lo faccia anche in tutti i browser; la specifica che ho collegato era "DOM Level 3" e AFAIK IE8 non ha nemmeno implementato completamente quella specifica. – machineghost
Non mi riferisco a jQuery in alcun modo.Quando creo un link 'Test', non fa nulla quando si fa clic su tutti i browser che ho a disposizione per il test. Non ero consapevole che restituire il falso fosse una cattiva pratica o che non funzionasse in circostanze fino ad ora. Se lo è, mi scuso, ma per favore fornisci una risorsa più comprensibile o indicami la voce corretta - Non posso estrarre nulla di rilevante qui dal tuo link. – Armatus