Je me demandais s'il y avait un moyen d'obtenir un HTML <button>
élément pour créer un lien vers un emplacement sans le placer dans un <a href...
tag?
Le bouton ressemble actuellement à:
<button>Visit Page Now</button>
Ce que je préférerais pas avoir:
<a href="link.html"><button>Visit Page Now</button></a>
Le bouton n'est pas utilisé dans un formulaire, donc <input type="button">
n'est pas une option. Je suis simplement curieux de voir s’il existe un moyen de lier cet élément particulier sans avoir besoin de l’envelopper dans un <a href
tag.
Au plaisir d'entendre certaines options/opinions.
Javascript en ligne:
<button onclick="window.location='http://www.example.com';">Visit Page Now</button>
Définir une fonction en Javascript:
<script>
function visitPage(){
window.location='http://www.example.com';
}
</script>
<button onclick="visitPage();">Visit Page Now</button>
ou en Jquery
<button id="some_id">Visit Page Now</button>
$('#some_id').click(function() {
window.location='http://www.example.com';
});
Voici une solution qui fonctionnera même lorsque JavaScript est désactivé:
<form action="login.html">
<button type="submit">Login</button>
</form>
L'astuce consiste à entourer le bouton de son propre <form>
tag.
Personnellement, je préfère le <button>
tiquette, mais vous pouvez le faire avec <input>
ainsi que:
<form action="login.html">
<input type="submit" value="Login"/>
</form>
Fais juste ça
<button OnClick=" location.href='link.html' ">Visit Page Now</button>
Bien que cela fasse longtemps que je n’ai pas touché JavaScript, peut-être que location.href
est obsolète? Quoi qu'il en soit, c'est comme ça que je le ferais.
Eh bien, pour un lien, il doit y avoir une balise de lien autour. vous pouvez également créer une classe CSS pour le bouton et affecter cette classe à la balise link. comme,
Le CSS
#btn{ background:url(images/button.jpg) no-repeat 0 0; display:block; width:50px; height:20px; border:none; outline:none;}
Le HTML
<a href="btnlink.html" id="btn"></a>
Vous pouvez en faire un bouton non soumis (<button type="button">
) et accrocher quelque chose comme window.location = 'http://where.you.want/to/go'
dans son gestionnaire onclick. Cela ne fonctionne pas sans que javascript soit activé.
Ou vous pouvez en faire un bouton d'envoi et faire une redirection sur le serveur, bien que cela nécessite évidemment une sorte de logique côté serveur, mais le bon côté des choses est que cela ne nécessite pas de javascript.
(en fait, oubliez la deuxième solution - si vous ne pouvez pas utiliser un formulaire, le bouton d'envoi est désactivé)
Considérez les astuces que <a href> connait par défaut mais que les liens javascript ne vous conviennent pas. Sur un site Web décent, tout ce qui veut se comporter comme un lien doit implémenter ces fonctionnalités d’une manière ou d’une autre. À savoir:
Maintenant, si vous ne voulez pas simuler tout ce comportement, je suggère d'utiliser <a href> et de le styler comme un bouton, puisque le bouton lui-même est à peu près une forme et un effet de survol. Je pense que s’il n’est pas sémantiquement important d’avoir seulement "le bouton et rien d’autre", <a href> est la voie du samouraï. Et si vous vous inquiétez de sémantique et de lisibilité, vous pouvez également remplacer l'élément button lorsque votre document est prêt (). C'est clair et sécuritaire.
<form action="portfolio.html"> <button type="link" class="btn btn-primary btn-lg">View Work</button> </form>
Je viens juste de comprendre cela, et il se connecte parfaitement à une autre page sans avoir mes paramètres de lien par défaut sur les classes de boutons! :)
Ici, il utilise jQuery. Voyez-le en action sur http://jsfiddle.net/sQnSZ/
<button id="x">test</button>
$('#x').click(function(){
location.href='http://cnn.com'
})