begin process at 2012 05 24 23:44:04
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fenêtre & Pop-up

 > POPUP SPECIAL(MODAL - MODELESS DIALOG)

POPUP SPECIAL(MODAL - MODELESS DIALOG)


 Information sur la source

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Fenêtre & Pop-up Niveau :Débutant Date de création :05/01/2004 Vu :40 058

Auteur : bob3000

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (33)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
C'est un petit tutoriel qui vous permet d'afficher un MODAL ou MODELESS DIALOG en quelques lignes de code. Voir la capture pour un exemple.

Source

  • MODAL DIALOG
  • showModalDialog()
  • MODELESS DIALOG
  • showModelessDialog()
  • 1) La syntaxe du code:
  • window.showModalDialog(sUrl [, sArguments] [, sAutre]);
  • window.showModelessDialog(sUrl [, sArguments] [, sAutre]);
  • a) sUrl: URL du site à ouvrir dans le dialogue
  • b) vArguments: Paramètre facultatif pour passer une valeur de n'importe quel type au dialogue
  • c) sAutre: Vous pouvez ajouter des paramètres facultatifs ici. Voici la liste des paramètres:
  • dialogHeight: la hauteur du dialogue
  • dialogLeft: position X du dialogue
  • dialogTop: position Y du dialogue
  • dialogWidth: la largeur du dialogue
  • center: centrer le dialogue ( yes | no | 1 | 0 | on | off )
  • dialogHide: rendre invisible le dialogue ( yes | no | 1 | 0 | on | off )
  • edge: bordure ( sunken | raised )
  • help: bouton '?' en haut avec le titre ( yes | no | 1 | 0 | on | off )
  • resizable: l'utilisateur peut changer les grandeurs du dialogue ( yes | no | 1 | 0 | on | off )
  • scroll: ( yes | no | 1 | 0 | on | off )
  • status: barre d'état ( yes | no | 1 | 0 | on | off )
  • unadorned: ( yes | no | 1 | 0 | on | off )
  • Les modelessdialog sont indépendants des pages visitées. Vous pouvez les tasser et bouger la page que vous visiter tandis que les modaldialog restent devant la page.
  • 2) Exemple:
  • <script>
  • window.showModalDialog('page.html','','dialogHeight: 400px; dialogWidth: 500px; center: Yes; help: No; resizable: No; status: No;');
  • </script>
MODAL DIALOG
showModalDialog()

MODELESS DIALOG
showModelessDialog()

1) La syntaxe du code:

window.showModalDialog(sUrl [, sArguments] [, sAutre]);
window.showModelessDialog(sUrl [, sArguments] [, sAutre]);

a) sUrl: URL du site à ouvrir dans le dialogue
b) vArguments: Paramètre facultatif pour passer une valeur de n'importe quel type au dialogue
c) sAutre: Vous pouvez ajouter des paramètres facultatifs ici. Voici la liste des paramètres:
     
    dialogHeight: la hauteur du dialogue
    dialogLeft: position X du dialogue
    dialogTop: position Y du dialogue
    dialogWidth: la largeur du dialogue
    center: centrer le dialogue ( yes | no | 1 | 0 | on | off ) 
    dialogHide: rendre invisible le dialogue ( yes | no | 1 | 0 | on | off ) 
    edge: bordure ( sunken | raised ) 
    help: bouton '?' en haut avec le titre ( yes | no | 1 | 0 | on | off ) 
    resizable: l'utilisateur peut changer les grandeurs du dialogue ( yes | no | 1 | 0 | on | off )
    scroll: ( yes | no | 1 | 0 | on | off )
    status: barre d'état ( yes | no | 1 | 0 | on | off )
    unadorned: ( yes | no | 1 | 0 | on | off )


Les modelessdialog sont indépendants des pages visitées. Vous pouvez les tasser et bouger la page que vous visiter tandis que les modaldialog restent devant la page.


2) Exemple:

<script>
window.showModalDialog('page.html','','dialogHeight: 400px; dialogWidth: 500px; center: Yes; help: No; resizable: No; status: No;');
</script>

 Conclusion

merci de m'aviser s'il y a des bugs



bob3000
http://www.netdude.tk


 Sources du même auteur

EFFET DE CHARGEMENT
INFOS SUR LES UTILISATEURS
FACON LA PLUS FACILE AU MONDE D'ECRIRE LA DATE
COULEUR DE FOND ALEATOIRE + TITRE ALEATOIRE *UPDATED*
EMPECHER LES VISITEURS DE SURLIGNER DU TEXTE + IMAGES

 Sources de la même categorie

Source avec Zip Source avec une capture MYNOTIFICATIONS par inwebo
Source avec Zip Source avec une capture POSMOUSE - AFFICHAGE DES COORDONNÉES DE LA SOURIS, TAILLE DE... par phidelum
SFR WIDGET ET JQUERY par hhoareau
Source avec Zip JOLIE ALERTE AVEC "ALERT()" par heycraft
Source avec Zip Source avec une capture FENETRE D'ACTUALITE par kazma

Commentaires et avis

Commentaire de neoxdragon le 06/01/2004 21:19:41

OOOOOOOOOOOOOOOOOOU Copieur je viens de le sortir avant toi euh !!

LOL

En fait Bravo ton script est bien mieux expliqué !

Commentaire de bob3000 le 07/01/2004 02:21:23

lol, merci! J'ai vu ta source et je me suis dit que je pourrais peut-être l'approfondir.

Commentaire de azeuw le 05/09/2004 13:20:39

Ca marche :)

(=vive le pdr)

Commentaire de astuces_jeux le 27/05/2005 16:33:40

Bonjour,

Merci beaucoup je cherchais depuis longtemps comment on fait mais y a t-il moyen de désactiver la croit rouge quitter

Merci de m'aider

Astuces_jeux

Commentaire de Bub325 le 01/06/2005 23:14:14

ce script est bloqué par IE 6 et firefox, y a t'ilun autre moyen qui ne soit pas bloqué ?

Commentaire de astuces_jeux le 03/06/2005 20:15:29

Je suis d'accord y a - t - il un autre moyen qui n'est pas bloquer

Commentaire de bob3000 le 03/06/2005 23:56:43

bloqué? je ne comprends pas.

Commentaire de NEVERFORGET le 08/06/2005 13:55:58

<script>
function modelesswin(url,mwidth,mheight){
if (document.all&&window.print) //if ie5
eval('window.showModelessDialog(url,"","help:0;resizable:0;dialogWidth:'+mwidth+'px;dialogHeight:'+mheight+'px")')
else
eval('window.open(url,"","width='+mwidth+'px,height='+mheight+'px,resizable=0,scrollbars=0")')
}
//Configurez les dimensions a la place de 490 260
modelesswin("http://www.americas-fr.com/voyages/pub-mexique.html",490,260)
</script>

J'ai trouvé ça. Ca pourra peut-être vous aider...

Commentaire de J_G le 28/09/2005 20:18:18

Bonjour...
Euh j'aurais une petite question :

"Erreur : window.showModalDialog is not a function" ?

J'utilise FireFox est la ligne qui bug est : "window.showModalDialog('exemple.html','','dialogHeight: 400px; dialogWidth: 500px; center: Yes; help: No; resizable: No; status: No;');"

Bizare !?!

Commentaire de safo17 le 09/01/2006 13:56:37

Bravo pour le script

Commentaire de AbriBus le 23/02/2006 15:20:27

Salut a tous,
J_G> showModalDialog est une foction specifique à IE 4 ou +. Donc avec FireFox, bah il te dit qu'il connait pas la fonction (puisque ce n'est pas IE)
NEVERFORGET> Ton script est bien, et il fonctionne nikel, tant que
1) soit tu est sous IE
2) soit la modalité de ta fenetre n'importe pas (window.open est une fonction javascript basic mais ne defini pas la page ouverte en tant que modale) ce qui est parfois important, nottament pour produire des messagebox en webdevelopment. L'astuce n'en reste pas moins bonne. Toutefois, si la fenetre modale n'est pas necessaire, autant utiliser window.open qui marche tout le temps, meme sous IE.

Personne n'aurait trouvé le moyen de generer un page modale avec FireFox par hazard ?

Commentaire de axuz le 28/03/2006 13:04:49

http://www.mozilla.org/docs/dom/domref/dom_window_ref76.html

Utilisation de l'option modal ... non?

Commentaire de AbriBus le 28/03/2006 13:08:56

nan, l'option "modal" de firefox est une M€#D€... c'est pas un vrai modal, c'est juste pour dire a la fenetre créée de n'afficher ni barre de statut ni barre de navigation (mais ca ne suspend pas l'execution du reste du code... a l'instar d'une VRAIE fenetre modale)

AbriBus

Commentaire de rickenter le 09/05/2006 17:50:01

function modalwindow(url,titre,largeur,hauteur,scroll){
if(window.showModalDialog){
window.showModalDialog(url,titre,'dialogHeight:'+hauteur+'px;dialogWidth:'+largeur+'px;resizable:0;status:1;center:1;scroll='+scroll+';help:0');
}else{
window.open(url,titre,'height='+hauteur+',width='+largeur+',toolbar=no,menubar=no,location=no,resizable=no,scrollbars='+scroll+',modal=yes')
}
}

Commentaire de AbriBus le 09/05/2006 22:42:54

Salut RickEnter,
Si tu me permet Deux petites remarques sur ton code (posté sans explications !):
Tout d'abord,la fonction if(window.showModalDialog) Ne fonctionnera que sur IE 4.0 ou plus. Ce qui soit dit en passant est fort dommage quand on sait a quel point c'est pratique. Je vais expliquer pour Mr Enter qui ne l'a pas fait precedemment, à partir de l'une des version de JavaScript (celle de IE 5 donc), il est possible de verifier l'existance d'une fonction par l'utilisation de la fonction if([fonction]) qui renverra true ou false selon que la version de JavaScript la reconnait ou pas. (Ne fonctionne pas avec FireFox !!!!!).
En outre, et comme je le disait precedemment, la fonction window.open a laquelle on affecte les variables (url,titre,'height='+hauteur+',width='+largeur+',toolbar=no,menubar=no,location=no,resizable=no,scrollbars='+scroll+',modal=yes') ne produit PAS (a l'instar de ce que le paramettre "modal=" pourrait laisser sous entendre) une fenetre modale.
Afin qu'il n'y ai pas de confusion, je vais donner un exemple de fenetre modale:
lorsque vous remplissez un formulaire, et que vous decidez de changer de page SANS soumettre le formulaire, il se peut que vous ayez a utiliser une fenetre modale pour dire par exemple "Vous allez quitter la page blablabla (...) Etes vous sur(e) ?" avec un bouton "Oui" et un bouton "Non". Il va de soit que le lien d'une page a l'autre ne doit se faire QUE si l'utilisateur clique sur "Oui". Durant l'interval de temps separant l'apparition du message et la validation du choix de l'utilisateur, le code sera mit "en attente" (d'ou l'expression "suspendre l'interpretation, meme si apliqué au web, ca ne veut pas dire grand chose)
ceci se traduirait par un lien du type:
<a href="www.toto.fr" onClick="return window.showModalDialog(url,titre,'dialogHeight:'+hauteur+'px;dialogWidth:'+largeur+'px;resizable:0;status:1;center:1;scroll='+scroll+';help:0');">aller vers toto.fr</a>
La fenetre qui s'ouvrira sera modale pour IE et attendra de savoir quelle est la valeur du return pour effectuer ou non le saut d'une page a l'autre (si return = false alors la page ne suivra pas le lien).
En revanche, le code suivant affiche bien la page attendue comme la fenetre de confirmation mais n'attend pas le return et suivra le lien quoi qu'il arrive (et avant meme que vous ayez repondu, preuve s'il en est que la fenetre n'est pas modale):
<a href="www.toto.fr" onClick="return window.open(url,titre,'height='+hauteur+',width='+largeur+',toolbar=no,menubar=no,location=no,resizable=no,scrollbars='+scroll+',modal=yes');">lien vers toto.fr</a>

Merci quand meme Rick pour ton code.

AbriBus

Commentaire de J_G le 10/05/2006 01:44:19

Bonjour,

Pour aller plus loin, une bonne façon de forcer le passage par la fenêtre pop-up est de ne pas activer le lien ! Exemple:

<a href="www.toto.fr" onClick="window.open(url, titre, 'height='+hauteur+', width='+largeur+', toolbar=no, menubar=no, location=no, resizable=no, scrollbars='+scroll+', modal=yes');return false;">lien vers toto.fr</a>

et dans la page se trouvant à 'url', affichée dans la fenêtre nommée 'titre'.
Nous pourrions trouver ce code (derrière une validation) :

<script type="text/javascript">
<!--
self.opener.location.assign('http://www.toto.fr/');
self.close();
-->
</script>



Mais si FireFox ne veut pas de fenêtre modale, c'est pour garantir la liberté d'action de l'utilisateur... Et tant mieux !


Une autre façon de faire une fenêtre modale ?
Essayez un truc comme ça :
<html>
  <body onblur="self.focus();">
  </body>
</html>

IE fera du modal, FireFox refusera au deuxième clic hors de la fenêtre...

Merci FF.

Commentaire de AbriBus le 10/05/2006 07:09:10

Salut J_G,
C'est vrai que ta facon de "fabriquer" une modale a partir de ce qui n'en est pas une est assez amusante. c'estapréciable... n'en reste pas moins que si l'utilisateur le souhaite, il peut continuer de naviguer dans la page mere.
Comme le disait bob3000, "(...)tandis que les modaldialog restent devant la page.". En fait tu fais une modale a partir d'une modelessbien sur c'est recevable... :D mais si tu peint une pasteque en jaune, ca n'en fait pas un citron :D:D

Tout de meme on aurait pu s'attendre a ce que firefox gere lesfenetre modale... non ?

Commentaire de bob3000 le 10/05/2006 07:26:05

"Tout de meme on aurait pu s'attendre a ce que firefox gere lesfenetre modale... non ?"

lol, on l'aurait accusé de copier les features de IE :P

Commentaire de AbriBus le 10/05/2006 08:08:20

Lol Bob... C'est peut etre vrai mais ce serait a tord... Vb gere des fenetre modale... et pourtant on l'accuse pas de plagier les features de java ou de C++... qui pourtant gerent tous deux (entre autre) les fenetres modales aussi...
:D
AbriBus

Commentaire de rickenter le 10/05/2006 10:49:01

Le but de ce script n'est pas de suspendre un quelquonque script mais bien d'obliger la pop-up à rester au premier plan afin d'être sur que l'utilisateur aura bien sélectioné une valeur sans retourner sur la page mère (en laissant la pop-up derrière par exemple). On aurait effectivement pu utiliser la fonction "onblur="self.focus();" mais qui n'est pas vraiment pro et peut très vite devenir très énérvant pour l'utilisateur.
Maintenant il est vrai que pour les utilsateur de windows 3.11 avec ie2 ca ne focntionne pas, mais là je ne peut rien faire pour eux ;)

Rick

Commentaire de J_G le 10/05/2006 11:25:41

<< la fonction "onblur="self.focus();" mais qui n'est pas vraiment pro et peut très vite devenir très énérvant pour l'utilisateur.>>

Ouaips ! Franchement agançant les petites fenêtres genre : "Vote pour mon site, vote pour mon site, vote pour mon site, vote pour mon site, vote pour mon site, ..."

Vous avez remarqué qu'en XHTML Strict, l'attribut "target" n'existe même plus pour l'élément <a>... Selon la W3C, l'utilisateur doit être seul juge pour ouvrir le lien dans une nouvelle fenêtre ou la courrante. (Bon, on peut toujours se la faire en <a href="http://truc.web" onclick="open('http://truc.web'); return false;">, mais c'est pas la même chose...).

Cette politique me plait...

Note de plus : resize=no est aussi ignoré avec FF...

Merci FF ;)

Commentaire de AbriBus le 10/05/2006 11:42:54

rickenter> Tu as tout a fait raison... mais dans ces cas la, il ne s'agit plus d'une fenetre modale... qui a un fonctionnement tres particulier... Tu parles d'une 'fenetre de premier plan' ou d'une fenetre 'AOT' (Always On Top).

J_G> T'as bien raison, pour "ceux qui s'y connaissent" c'est vraiment cool de pas se faire emm€rD€r la vie par des stupidité sur les sites pornos. ^^ Mais quand tu fais du webdev pour des clients parfois un peu neuneu qui comprennent pas que s'ils ferment une page sans soumetre le formulaire qu'elle contient les données ne seront pas enregistrées (un peu genre... "allo Nix ? excuse moi je comprend pas j'ai écrit quelque chose dans la page web sur CS mais quand j'ai quitté ca n'a pas enregistré"... LOL)

Voila... j'ai fait un morceau de code (commenté !) qui propose une solution pour "fabriquer" des fenetre modale tant pour FF que pour IE au mieu de ce que permet la version de javascript presente coté client.
Le code est un peu rebarbatif mais il marche bien... et prend en charge la gestion multilingue

Premiere partie (a placer dans la page appelant la fenetre modale):

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<script>
// Initialisation des valeurs constantes définissant le type de fenetre
cstYESNO = 1;
cstOK = 2;
cstINPUT = 3;
langage_id = 0; // Ici c'est le Numero affecté a la langue (0 francais, 1 Anglais)

mes_taille = new Array(3); // Tableau contenant les couples de tailles (x, y) de la fanetre en pixels
mes_taille[1] = new Array(400, 200);
mes_taille[2] = new Array(600, 800);

mes_titre = new Array(); // Tableau contenant les n-uplets des titres de fenetre (n = nombre de langues)
mes_titre[0] = new Array('Fenetre Francaise', 'English window');

mes_etiquette = new Array(); // Tableau contenant les n-uplets des messages (n = nombre de langues)
mes_etiquette[0] = new Array('Etes vous sur(e) de vouloir fermer cette fenetre ?', 'Are you sure you want to close this window ?')

function ShowModalBox(typeBox, IdMessage, IdTailleFenetre, Parametre)
{
if (navigator.appName == "Microsoft Internet Explorer") // Pour internet explorer
{
if(showModalDialog) // S'il existe la fonction showModalDialog (IE 4 +)
{
featStr = 'center:yes; status:no; unadorned:yes; dialogWidth:' + mes_taille[IdTailleFenetre][0] + ' px; dialogHeight: ' + mes_taille[IdTailleFenetre][1] + ' px';
argv = new Array(10); // Creation du tableau de paramettre
argv[0] = typeBox; // Insertion du type de boite de dialogue
argv[1] = mes_etiquette[IdMessage][langage_id]; // Insertion du message dans le tableau de parametre en fonction de son Id
argv[2] = mes_titre[IdMessage][langage_id]; // Insertion du titre de la fenetre
argv[3] = Parametre; // Insertion du parametre eventuel
return window.showModalDialog("msgbox.html", argv, featStr);
}
else // Sinon (comme pour les clients autre que IE)
{
Msg = mes_etiquette[IdMessage][langage_id]; // Recuperation du message par son Id
if(typeBox == cstYESNO) // Si oui ou non
{
return confirm(Msg); // Demande si oui ou si non
}
else if(typeBox == cstOK) // Si Ok
{
return alert(Msg); // Indique le message
}
else if(typeBox == cstINPUT) // Si saisie de texte
{
return prompt(Msg, Parametre);
}
}
}
else // Si le client web n'est pas IE, affichage de la boite de dialogue classique
{
Msg = mes_etiquette[IdMessage][langage_id]; // Recuperation du message par son Id
if(typeBox == cstYESNO) // Si oui ou non
{
return confirm(Msg); // Demande si oui ou si non
}
else if(typeBox == cstOK) // Si Ok
{
return alert(Msg); // Indique le message
}
else if(typeBox == cstINPUT) // Si saisie de texte
{
return prompt(Msg, Parametre);
}
}
}
document.write('Vous avez repondu ' + ShowModalBox(cstYESNO, 0, 1, '')); // Affichage de la boite de dialogue et du resultat
</script>
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Deuxieme partie (a placer dans un fichier nommé msgbox.html):

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<script>
if (navigator.appName != "Microsoft Internet Explorer"){window.document.location = 'erreur2.asp?msg=Impossible d\'afficher cette page, votre navigateur ne vous le permet pas.';}
cstYESNO = 1;
cstOK = 2;
cstINPUT = 3;

argv = window.dialogArguments;
var jtypeBox = argv[0];
var jmessage = argv[1];
window.document.title = argv[2];
var jParametre = argv[3];
function setRetVal(retVal)
{
window.returnValue = retVal;
window.close();
}
</script>

<script>document.write('<br><h5 align=center><div id=\'message\'>' + jmessage + '</div></h3><br>');</script>

<script>
if(jtypeBox == cstYESNO){
document.write('<div align=center><table width="75%" cellspacing=0 cellpadding=0><tr align=center><td><input tabindex=12 type="button" name="Oui" value="Oui" class=boutonLarge2 onClick="setRetVal(true);"></td><td><input tabindex=12 type="button" name="Non" value="Non" class=boutonLarge2 onClick="setRetVal(false);"></td></tr></table></div>');
}else if(jtypeBox == cstOK){
document.write('<div align=center><table width="75%" cellspacing=0 cellpadding=0><tr align=center><td><input tabindex=12 type="button" name="Ok" value="Ok" class=boutonLarge2 onClick="setRetVal(true);"></td></tr></table></div>');
}else if(jtypeBox == cstINPUT){
document.write('<form name="demandeur" action="#"><div align=center><input type="text" name="inputText" size="40" value="' + jParametre + '"><br><br><input tabindex=12 type="button" name="Ok" value="Ok" class=boutonLarge2 onClick="setRetVal(document.forms[\'demandeur\'].inputText.value);"></div></form>');
}

</script>
</body></html>
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Voila... si vous trouvez une autre alternative a l'utilisation de ces alert(), confirm() et prompt() pour FF et IE < 4.0 oubliez pas de partager ;)

AbriBus

Commentaire de rickenter le 10/05/2006 12:17:29

hehe, tu rigoles pas toi quand tu fais des script ;)

Commentaire de bob3000 le 10/05/2006 14:53:31

OH, ca c'est bon =D !! tu devrais poster la source ici :P

Commentaire de sheorogath le 10/05/2006 15:33:41 administrateur CS

bonne idee ca pourras etre utile ^^

Commentaire de AbriBus le 10/05/2006 20:17:56

lol... sisi j't'assure rick, ca me fait tout a fait rigoler... :D c'est ca qu'est bon... rigoler en faisant son boulo... ;)
Bob> Merci pour ton comment encourageant mais je n'ai rien fait de plus que toi... j'veux dire, j'ai repris ce que t'as fait et dans les cas ou ca marche pas, je fait avec autre chose... c'est a dire une m€#D€ de messagebox inclus dans FF toute pourrie alors qu'avec IExplore on fait une vraie fenetre de cinglé... mais des que je trouve la reponse a ma question (a savoir comment faire pour que ca marche a tous les coups, IExplore ou pas), je post... ;)
Et puis, si je post la meme source que toi, quelques tests en plus... il diraient quoi les admins...? hein sheorogath  ;)

Commentaire de sheorogath le 10/05/2006 20:50:26 administrateur CS

lol suppression ^^ ou peut etre pas

Commentaire de axuz le 11/05/2006 16:20:00

Hello,

Merci Abribus pour ton script, en faisant certaines recherches (après des tests, je me suis effectivement rendu compte que modal pour FF ca veut pas dire gd chose...lol) j'ai fini par trouver du code qui créé bien une fenetre modale, mais je ne l'ai pas testée en profondeur ... Ni ton script d'ailleurs.

En fait j'utilise cette fenetre modale avec un timeout qui la referme automatiquement après un certain temps dans le but de créer une sorte de pause.
Mais après différents tests, je me rends compte que FireFox n'est pas multi thread et que IE bien => suis dans la M€#dfsdf ...
Me suis rendu compte que FF devait terminer la boucle qui appelait la fonction pause (qui contient la fenetre modale) pour effectuer le code de la fenetre qui s'ouvre (et dont la boucle vérifie la bonne ouverture avec une variable qui est modifiée avec un onload)... La boucle tourne tant que la fenetre n'est pas completement chargée.(sorry trop compliqué à expliquer facilement)

Je n'ai pas cherché beaucoup plus loin et je suis passé à autre chose, mais je serais bien tenté d'approfondir le sujet pour m'assurer que ton code (ou celui trouvé sur le net) peut convenir à mes attentes et mes exigences logicielles très strictes...

De plus, phénomène bizarre, ma fenetre modale sous IE n'apparait pas à l'écran (son but n'est QUE de suspendre l'execution du code)...

AxuZ

Commentaire de AbriBus le 11/05/2006 18:29:14

C'est tout a fait ca azux, FF n'est pas multithread... et il ne reconnait pas de fonction javascript qui permettre de le mettre en "pause"... sinon, il y aurait bien eut la bonne vielle methode à la QBasic de faire une boucle dont la condition de sortie aurait été la fermeture de la fenetre mais si tu fais ca (vu qu'il y a pas de pause) ca te claque ton UC à 100% tant que t'as pas fermé ta fenetre... en plus (et heureusement je dirais) au bout d'une dizaine de seconde, FF te previent que "un script ne repond plus" (normal puisqu'il boucle)... donc pour le moment, pas de solution technique au probleme sauf a utiliser ces fameux alerte() prompt() et confirm() (trop moche !! beark :()
Il est vrai que le principe de modalité n'est pas simple a expliquer. Il est pareillement vrai que cette histoire avec FF c'est un peu la daube parceque les clients quand ils ont une idee dans la tete, ils l'on pas ailleur ! Sans pretention, je pense que les exigences qui m'ont été communiquées sont au moins aussi strictes que les tiennes... (et je comprend donc fort bien que tu sois dans le "petrin")

Bon courrage
'BriBus

Commentaire de axuz le 15/05/2006 13:07:07

En fait je dois adapter un programme déjà existant et fonctionnant parfaitement sous IE pour qu'il soit compatible FireFox... et ce principe de fenetre modale pour réaliser une pause est utilisée pour chaque ouverture de page (dans nouvelle fenetre ou dans une frame ...).
En conclusion de mon étude de faisabilité j'ai dis qu'il fallait réfléchir à une autre manière d'approcher la chose, mais les modifications sont très importantes ! Ce projet est donc en "pause" lol

Et ben si quelqu'un à une alternative qu'il le fasse savoir!

Merci

AxuZ

Commentaire de AbriBus le 18/05/2006 23:59:42

J'ai deposé un petit src quand meme... je l'ai un peu embelli par rapport au post que j'avais fait ici meme un peu plus haut... etpuis j'ai mis plus de commentaires et un peu plus d'intelligence... normalement, ca ne devrait produire aucune erreur javascript quelque soit le navigateur et sa version. J'y fait egalement de l'extraction de parametres en javascript.
Dispo: http://www.javascriptfr.com/code.aspx?ID=37659

Bon' Prog'
'BriBus

Commentaire de bridloaque le 12/06/2006 11:06:32

Pour Firefox, la soluce afin que 'modal' soit pris en compte et géré correctement :
avant le window.open avec option modal,
faire "netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserWrite');"
(voir, au besoin, la configuration du fichier user.js de Firefox pour configurer correctement les droits)

Voilà !

Commentaire de AbriBus le 12/06/2006 11:43:00

Hmmm... tres interressant... je vais voir ca... Si ca fonctionne ca serait cool.
J'immagine que netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserWrite'); ne doit figurer que si le client n'est pas IE bien sur.
Ca fait beaucoup penser a java :P
Merci Bridloaque

AbriBus

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales