
script : msg v2.1
langage : javascript
catégorie : module
usage : Créez des messages d'interface : messages d'alerte et infobulles personnalisés, preloaders, formulaires modaux, etc.
tags : ergonomie
Ce script vise à proposer des alternative plus souples et plus esthétiques à deux choses :
Il vous permet ainsi de designer ces éléments à votre guise, grâce au css, et d'y intégrer tout le html que vous voulez.
Il est souvent pratique de mettre en évidence une information ou un formulaire, voire même d'empêcher l'accès au reste de la page. essayer
Pourquoi ne pas faire des alert() un peu plus jolies, quand vous vérifiez le contenu d'un formulaire ?
veuillez entrer un mot de 8 lettres au moins : essayer
Très pratique par exemple dans les cas d'envois de formulaires par Ajax.
A la fin du chargement, on peut en plus, selon la réponse, afficher un autre message, de confirmation ou d'erreur.
essayer
En plaçant la boîte de message à proximité de la souris, on obtient une belle alternative à l'infobulle
ordinaire. essayer
(Mais s'il s'agit là du seul usage que vous souhaitez faire de ce script, voyez plutôt du coté de
bubulle, plus simple)
Et rien ne vous empèche de créer des infobulles persistantes. essayer
Pour passer une message sans trop s'imposer. (ici, en bas à droite de la page)essayer
On commence par importer le script et la feuille de styles dans la page.
Il s'agit de placer le code suivant quelques part entre les balises <head> et </head> :
<script type="text/javascript" src="msg/msg.js"></script> <link rel="stylesheet" media="all" href="msg/msg.css" />
Ensuite, pour ouvrir une boîte de message sans options particulières, on se contente d'ajouter un événement
onclick à l'élément de son choix, comme suit :
document.getElementById("un_element").onclick = function() { msg.open("Salut tout le monde !"); return false; };
(N'oubliez pas le return false si vous ne voulez pas que votre navigateur vous renvoie en haut de la page.)
Ce qui nous donne : Dîtes bonjour
Simple, non ?
Pour un usage affiné, le script accepte de nombreuses options.
On
peut ainsi choisir la position de la boîte et son apparence. On peut lui donner un titre, faire qu'elle se referme
automatiquement, etc. On peut également charger le contenu du message par ajax.
Les options sont passées comme second paramètre de la méthode.
Elles doivent être structurée sous forme d'objet, selon ce principe :
{ option_1 : valeur_1, option_2 : valeur_2, option_n : valeur_n }
Ainsi, nous pourrons ouvrir un message avec options de la façon suivante :
document.getElementById("un_element").onclick = function() { var options = { "title": "Bonnes manières", "button": "La ferme" }; msg.open( "Il faut dire bonjour. C'est plus poli." , options); return false; };
Essayez : dîtes bonjour.
La liste des options (et méthodes) disponibles est présentée dans le tableau ci-dessous.
| open([content[, options]]) | ouvre une nouvelle boîte de message annonçant content, avec les options options
|
|---|---|
| close() | ferme la boîte de message active. |
| preset(settingName[,content[, options]]) | enregistre un paramétrage sous le nom de settingName
|
| reload(settingName[,content[, options]]) | ouvre une nouvelle boîte de message, sur la base des préréglages enregistrés sous le nom de settingName. Ces préréglages peuvent être écrasés par les valeurs de content et options options
|
| replaceAlert() | si cette méthode est appelée, tous les appels de la fonction native alert() renverront à msg.reload('alert');
|
| className | string
|
nom de classe css à attribuer à la boîte de message.
Valeurs acceptées : "error", "success", ou tout autre nom de classe que vous aurez vous-même défini . |
null
|
|---|---|---|---|
| style | object
|
description javascript de styles css à donner à la boîte qui contient le message.
Exemple : { width:"200px", backgroundColor:"#faaab9" }
|
{ }
|
| delay | integer
|
délai (en secondes) avant la fermeture du message.
Pour que le message ne disparaisse pas automatiquement, attribuer une valeur de 0 à cette option. |
0 |
| modal | boolean
|
permet de bloquer l'accès au reste de la page en plaçant un voile par dessus tout ce qui n'est pas dans la boîte de message.
|
false |
| modalColor | string
|
si l'option modal est activée, cette option-ci détermine la coloration de l'écran. Accepte tout code de couleur reconnu en css.
|
"#ffff"
(blanc) |
| modalOpacity | float
|
si l'option modal est activée, cette option-ci détermine l'opacité de l'écran. La valeur doit être comprise entre 0 et 1, avec 0=transparent, et 1=opaque
|
0.7 |
| title | string | titre de la boîte de message.
Pour que la boîte n'ait pas de titre du tout, il suffit de régler cette option sur null. |
null
|
| context | string | code html à disposer autour du message.
Le contenu du message est représenté par le masque $msg$. Cette option est intéressante surtout pour les réglages enregistrables. (voir la méthode preset().) Exemple : citation : <blockquote>$msg$</blockquote> |
null |
| button | string | texte du bouton de fermeture.
Une valeur null indique de ne pas mettre de bouton du tout. |
"ok" |
| position | string | position de la boîte de message dans la fenêtre.
L'option prend en compte une valeur pour la position horizontale, et une autre pour la position verticale. Ces deux valeurs doivent être séparées par deux points (:), de la façon suivante : "horizontal:vertical"
Accepte les valeurs suivantes :
Si la position horizontale est manquante, "c" sera attribué par défaut. |
null
(ce qui revient à "c:m") |
| onOpen | function
|
fonction callback à exécuter à l'ouverture du message.
|
null |
| onClose | function
|
fonction callback à exécuter à la fermeture du message.
|
null |
| remember | booleran
|
permet d'indiquer au script s'il doit mémoriser le contenu et les options du message (pour une éventuelle reproduction du même message par msg.open(null);)
|
false
|
| ieMaxWidth | integer
|
permet de simuler la propriété css max-width dans les navigateurs Exemple : 400
|
400 |
| ajaxContent | string
|
permet de charger par ajax le contenu du message.
Il suffit pour cela d'indiquer l'adresse url du contenu à charger. En attendant que la requête ait reçu une réponse, le message indiqué dans le paramètre content sera affiché. |
null |
Vous trouverez tout ce qu'il vous faut dans ce zip :
le script, la feuille de style, quelques icones, et les fichiers source.
Sous sa forme compressée, le script ne pèse que 6ko, plus 2ko pour les css.
compatibilité :
(autres navigateurs non testés)
msg.open( 'blabla' , {position:'mouse:mouse'} );