Comment Faire Une Image Cliquable Dans Fonction Alert

Vous savez, l'autre jour, je papotais avec un ami développeur. Il galérait à faire un truc tout bête : afficher une image cliquable dans une alerte. Genre, un bouton "OK" stylé en image. Il me disait : "Mais c'est pas possible, les alerts, c'est du texte, c'est tout !" Et là, la lumière s'est allumée dans mon cerveau (oui, ça arrive parfois!)... Et si on trouvait une astuce ?
Alors, comment faire une image cliquable dans une fonction alert() ? La réponse courte : techniquement... on ne peut pas directement. alert() est une fonction basique, ultra-simple, qui sert juste à afficher un message (souvent barbant, soyons honnêtes!). Elle n'accepte pas de code HTML complexe, ni d'images. C'est le principe même de sa simplicité.
Mais, ne désespérez pas ! Comme on dit, quand la montagne ne vient pas à Mahomet... Mahomet va à la montagne! (Ou un truc du genre!). On va donc contourner le problème. On va simuler une alerte avec une image cliquable, et ça sera même plus joli, promis !
Must Read
La solution : une modal personnalisée
L'astuce, c'est de créer une modal. Une modal, c'est une fenêtre qui s'affiche au-dessus de votre page web, un peu comme une alert(), mais complètement personnalisable. On va utiliser du HTML, du CSS et un peu de JavaScript. Pas de panique, c'est plus facile qu'il n'y paraît!
1. Le HTML : la structure de la modal
On commence par créer le code HTML de notre modal. On va créer une div qui contiendra tout notre contenu. Pensez à lui donner un identifiant unique (par exemple, "maModal") pour pouvoir la manipuler en JavaScript.

Voici un exemple:
<div id="maModal" class="modal">
<div class="modal-content">
<span class="close">×</span>
<p>Votre message ici!</p>
<img src="mon-image-cliquable.png" alt="Cliquez ici" id="monImage">
</div>
</div>
Remarquez le <img> avec l'attribut src qui pointe vers votre image. On a aussi un <span> avec la classe "close" pour créer un bouton de fermeture (la petite croix, vous voyez ?).
2. Le CSS : le style de la modal

Maintenant, il faut styliser notre modal pour qu'elle ressemble à une alerte, et surtout, qu'elle soit bien positionnée au centre de l'écran. On va utiliser du CSS pour ça.
Un petit bout de CSS pour vous donner une idée:
.modal {
display: none; /* Cachée par défaut /
position: fixed; / Position fixe pour rester visible lors du scroll /
z-index: 1; / Placer la modal au-dessus du contenu /
left: 0;
top: 0;
width: 100%; / Pleine largeur /
height: 100%; / Pleine hauteur /
overflow: auto; / Activer le scroll si le contenu est trop long /
background-color: rgba(0,0,0,0.4); / Fond semi-transparent /
}
.modal-content {
background-color: #fefefe;
margin: 15% auto; / Centrer verticalement et horizontalement */
padding: 20px;
border: 1px solid #888;
width: 80%;
}
.close {
color: #aaa;
float: right;
font-size: 28px;
font-weight: bold;
}
.close:hover,
.close:focus {
color: black;
text-decoration: none;
cursor: pointer;
}
N'hésitez pas à personnaliser ce CSS selon vos goûts ! C'est là que vous pouvez vraiment rendre votre "alerte" unique.

3. Le JavaScript : l'interaction
Enfin, on va utiliser du JavaScript pour afficher et masquer notre modal, et surtout, pour gérer le clic sur l'image. C'est là que la magie opère !
Un exemple de code JavaScript:
// Récupérer la modal
var modal = document.getElementById("maModal");
// Récupérer l'image
var img = document.getElementById("monImage");
// Récupérer le bouton de fermeture
var span = document.getElementsByClassName("close")[0];
// Fonction pour afficher la modal
function afficherModal() {
modal.style.display = "block";
}
// Quand l'utilisateur clique sur l'image
img.onclick = function() {
alert("Vous avez cliqué sur l'image !"); // Ou n'importe quelle action que vous voulez déclencher
modal.style.display = "none"; // Fermer la modal après le clic
}
// Quand l'utilisateur clique sur la croix (fermer)
span.onclick = function() {
modal.style.display = "none";
}
// Quand l'utilisateur clique en dehors de la modal
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
// Exemple d'utilisation:
// afficherModal(); // Appeler cette fonction pour afficher la modal
Ce code récupère les éléments HTML, définit des fonctions pour afficher et masquer la modal, et ajoute un gestionnaire d'événement (onclick) à l'image pour déclencher une action quand on clique dessus. Et voilà !
En résumé, on a contourné la limitation de la fonction alert() en créant une modal personnalisée. C'est un peu plus de code, mais le résultat est beaucoup plus flexible et visuellement attrayant. Alors, prêt à vous lancer ? N'oubliez pas de remplacer "mon-image-cliquable.png" par le chemin de votre image, et de personnaliser le code à votre guise.
Bon courage, et amusez-vous bien ! (Et n'hésitez pas à revenir me voir si vous avez des questions !)
