200 votes

Comment modifier le titre d'une boîte d'alerte JavaScript ?

Je génère une alerte JavaScript avec le code suivant dans une page C# .NET :

Response.Write("<script language=JavaScript> alert('Hi select a valid date'); </script>");

Il affiche une boîte d'alerte dont le titre est "Message de la page Web".

Est-il possible de modifier le titre ?

0 votes

Je pense que la question portait sur JavaScript, qui est compatible avec toutes les plateformes et tous les navigateurs, et non sur VBScript, qui est strictement réservé à IE et à Windows et dont l'utilisation est limitée à Windows.

2 votes

2 votes

Savez-vous que les alertes peuvent être très facilement désactivées par l'utilisateur ? Vous ne devez PAS vous y fier !

315voto

Pierreten Points 3583

Non, tu ne peux pas.

C'est une fonction de sécurité/anti-hameçonnage.

31 votes

Bien que ce soit une réponse et qu'elle soit EN FAIT vraie, j'ai déterminé que vous pouvez créer votre propre version d'alert et qu'elle fera ce que vous voulez. Une simple modale et remplacer l'appel de la fonction alert.

8 votes

En quoi est-ce une fonction de sécurité/anti-hameçonnage ? Je suis curieux, je ne discute pas.

2 votes

@Tim Il serait vraisemblablement plus facile de simuler un autre site Web si vos alertes n'indiquaient pas à l'utilisateur l'URL d'où elles proviennent ; le fait de ne pas autoriser cette personnalisation oblige JavaScript à indiquer à l'utilisateur qu'il ne s'agit pas d'un message légitime.

68voto

rahul Points 84185

Non, ce n'est pas possible. Vous pouvez utiliser une boîte d'alerte personnalisée en javascript.

J'en ai trouvé un joli en utilisant jQuery

Dialogues d'alerte jQuery (remplacement des alertes, des confirmations et des invites)

4 votes

Merci, mais je ne suis pas intéressé par l'utilisation d'une boîte d'alerte personnalisée.

22 votes

Si vous ne pouvez pas modifier le titre, c'est pour empêcher les sites Web malveillants de faire croire à l'utilisateur que l'alerte provient de son système d'exploitation ou d'un autre système.

1 votes

REMARQUE : Un autre utilisateur a tenté de modifier cette réponse pour indiquer que le lien fourni menait à un site où des logiciels malveillants ont été détectés.

36voto

Chris Fulstow Points 19762

Vous pouvez le faire dans IE :

<script language="VBScript">
Sub myAlert(title, content)
      MsgBox content, 0, title
End Sub
</script>

<script type="text/javascript">
myAlert("My custom title", "Some content");
</script>

(Bien que, je souhaite vraiment que vous ne puissiez pas.)

0 votes

@Chris Fulstow quelle peut être la solution pour cette question

1 votes

J'adore le vbscript, j'aimerais que le vbscript soit standardisé avec le javascript. Comme ça je pourrais script sans la confusion de la sensibilité à la casse, et tous les navigateurs populaires obéiraient à mes commandes MWHAHAHA

3 votes

Wow, un commentaire a plus de votes que la réponse... pour avoir soutenu une partie de la réponse.

12voto

Derk Jochems Points 61

Remplacez la fonction javascript window.alert().

window.alert = function(title, message){
    var myElementToShow = document.getElementById("someElementId");
    myElementToShow.innerHTML = title + "</br>" + message; 
}

Avec cela, vous pouvez créer votre propre alert() fonction. Créez une nouvelle boîte de dialogue au look "cool" (à partir de quelques éléments div).

Testé fonctionnant dans chrome et webkit, pas sûr des autres.

1 votes

Ce qui est someElementId ? quel tag je veux dire ?

1 votes

someElementId est l'identifiant que vous avez défini pour votre élément HTML.

0 votes

Il semble que les navigateurs modernes ne fonctionnent plus.

5voto

kralco626 Points 2402

Pour répondre aux questions en fonction de la façon dont vous les avez posées.

C'est en fait VRAIMENT facile (dans Internet Explorer, au moins), je l'ai fait en 17,5 secondes.

Si vous utilisez le script personnalisé que cxfx a fourni : (placez-le dans votre fichier apsx)

<script language="VBScript">
Sub myAlert(title, content)
MsgBox content, 0, title 
End Sub 
</script>

Vous pouvez alors l'appeler comme vous avez appelé l'alerte normale. Il suffit de modifier votre code comme suit.

Response.Write("<script language=JavaScript> myAlert('Message Header Here','Hi select a valid date'); </script>");

J'espère que cela vous aidera, ou aidera quelqu'un d'autre !

2 votes

Cela fonctionne pour moi avec IE, mais pas avec Firefox. Merci quand même, c'est rapide et sale mais ça peut être utile.

1 votes

@ Darth. J'aurais dû le mentionner. Il utilise VBScript. Vous devez chercher sur Google comment faire fonctionner VBScript dans Firefox.

2 votes

@ Dath - PS Je ne sais pas s'il y a un moyen d'exécuter VBScript sur firefox. Je créerais un autre sujet appelé quelque chose comme comment exécuter ce vb script dans firefox et poster le code que je vous ai donné ci-dessus et voir si quelqu'un peut trouver quelque chose.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X