1. Qu'est-ce que le modaldialog?
ShowModaldialog est une méthode d'objet Jswindow.
La différence est: après l'ouverture du showmodaldialog, la fenêtre parent ne peut pas obtenir l'attention (c'est-à-dire qu'elle ne peut pas être utilisée).
Vous pouvez définir la valeur de Window.ReturnValue dans la sous-window, afin que la fenêtre parent puisse obtenir cette valeur de retour.
2. Un exemple
1) Main.html dans la fenêtre principale,
2) Ouvrez le sous-window sub.html dans la fenêtre principale via ShowModaldialogique
3) Définissez ReturnValue dans le sous-window et revenez à la fenêtre principale pour utiliser
main.html
Copier le code du code comme suit:
<html>
<adal>
<Medaname = "générateur" contenu = "oscar999">
</ Head>
<cript>
FunctionShowModal ()
{{
varret = window.showmodaldialog ("sub.html? temp =" + math.random ());
Alert ("sub-returnValueis" + ret);
}
</cript>
<body>
<poudId = Button1Type = ButtonValue = "OpenSub" name = Button1OnClick = "ShowModal ();" >>
</docy>
</html>
sub.html
Copier le code du code comme suit:
<html>
<adal>
<Medaname = "générateur" contenu = "oscar999">
</ Head>
<cript>
FunctionReturnMain ()
{{
window.returnvalue = "returnfromsub";
window.close ();
}
</cript>
<body>
<poudId = Button1Type = ButtonValue = "returnandclose" name = Button1OnClick = "returnmain ()">
</docy>
</html>
Explication spéciale: Lorsque la méthode de ShowModaldialog dans Main.html, le but d'utiliser math.random () est d'éviter le cache.
3.Showmodaldialog en détail
vreTurnValue = window.showmodaldialog (Surl [, varguments] [, sfeatures]))
Surl
MUST -CHOOSE Paramètres, Type: String. URL utilisé pour spécifier le document à afficher dans la boîte de dialogue.
varguments
Paramètres facultatifs, type: variante. Utilisé pour transmettre des paramètres à la boîte de dialogue. Le type de paramètre passé n'est pas limité, y compris le tableau, etc. La boîte de dialogue obtient des paramètres transmis par la fenêtre.dialogarguments.
sfeatures
Paramètres facultatifs, type: chaîne. Utilisé pour décrire l'apparence et d'autres informations de la boîte de dialogue, vous pouvez utiliser un ou plusieurs ci-dessous et utiliser le segment ";"
La hauteur de la boîte de dialogue de dialogue, pas moins de 100px, de dialogue et de dialogue dans IE4 sont EM, et IE5 est PX.
Dialogue de dialogue: Largeur de la boîte de dialogue.
Dialogle: distance de la gauche du bureau.
Dialogte: distance entre le bureau.
Centre: {Oui | Non | 1 | 0}: si la fenêtre est centrée, la valeur par défaut, mais la hauteur et la largeur peuvent toujours être spécifiées.
AIDE: {Oui | Non | 1 |
Resizable: {Oui | Non | 1 | 0} [IE5 +]: si cela peut être modifié. La valeur par défaut no.
Status: {Oui | Non | 1 | 0} [IE5 +]: s'il faut afficher la barre d'état. La valeur par défaut est oui [sans modes] ou non [modal].
Scroll: {Oui | Non | 1 | 0 | 0 | La valeur par défaut est oui.
Il existe plusieurs attributs utilisés dans HTA, qui ne sont généralement pas utilisés dans les pages Web générales.
Dialogue: {Oui | Non | 1 | 0 | 0 | La valeur par défaut est non.
Edge: {Sunken | La valeur par défaut est une augmentation.
Nédorné: {Oui | Non | 1 | 0 |
4. Compatibilité du navigateur
Mais tous les navigateurs ne sont pas compatibles avec cette utilisation.
Si vous exécutez l'exemple ci-dessus dans Chrome, la fenêtre parent peut obtenir le focus à volonté.
Ce qui suit est le support des navigateurs grand public sur cette méthode.
Navigateur | S'il faut soutenir | État |
IE9 | ○ | |
Firefox13.0 | ○ | |
safari5.1 | ○ | |
chrome19.0 | × | Ce n'est pas une boîte de dialogue modale, mais Open a une nouvelle fenêtre |
Opéra12.0 | × | Tout s'est passé, pas même une fenêtre |
S'il y a un paramètre qui est introduit dans Varguments à la fenêtre:
Copier le code du code comme suit:
var return = window.showmodaldialog ("sub.html? temp =" + math.random (), fenêtre);
Dans la sous-window, la valeur suivante est:
Navigateur | Boîte de dialogue modal | fenêtre | Fenêtre.Dialogargments | Valeur de retour |
IE9 | ○ | indéfini | [Fenêtre d'objet] | ○ |
Firefox13.0 | ○ | [ObjectWindow] | [ObjectWindow] | ○ |
safari5.1 | ○ | [ObjectWindow] | [ObjectWindow] | ○ |
chrome19.0 | × | [ObjectWindow] | indéfini | × |
Notez que sous le navigateur Firefox, si la sous-fenêtre est actualisée, la fenêtre. Les dialogargues seront toujours perdus et ne seront pas définis. Dans les résultats ci-dessus, nous pouvons voir que la valeur de retour returnValue est que seul le navigateur Chrome renvoie non défini et qu'il n'y a aucun problème avec d'autres navigateurs.
5. Comment résoudre la compatibilité du chrome.
La direction est: set window.opner.returnvalue = "" "
main.html
Copier le code du code comme suit:
<html>
<adal>
<Meta name = "General" content = "oscar999">
</ Head>
<cript>
Fonction showmodal ()
{{
var return = window.showmodaldialog ("sub.html? temp =" + math.random (), fenêtre);
// pour chrome
if (ret == Undefined)
{{
Ret = window.ReturnValue;
}
Alert ("Sub Return Value Is" + ret);
}
</cript>
<body>
<Entrée id = Button1 type = Button Value = "Ouvrir Sub" Name = Button1 OnClick = "ShowModal ();" >>
</docy>
</html>
sub.html
Copier le code du code comme suit:
<html>
<adal>
<Meta name = "General" content = "oscar999">
</ Head>
<cript>
Fonction returnmain ()
{{
if (window.opner! = Undefined)
{{
Window.opner.returnvalue = "retour de sub";
} Autre {
window.returnvalue = "retour de sub";
}
window.close ();
}
</cript>
<body>
<Entrée id = bouton1 type = Button Value = "return and close" name = Button1 onClick = "returnmain ()">
</docy>
</html>
Il s'agit de déterminer si certains objets sont définis pour distinguer les navigateurs. Bien sûr, vous pouvez également juger du type de type de navigateur
Ceci est utilisé pour utiliser la valeur de retour de la fenêtre parent.
Var oldvalue = window.ReturnValue;
var newValue = showModaldialog ()
Window.ReturnValue = OldValue
6. Il convient de noter que le test sous Chrome doit mettre le fichier HTML dans le serveur Web (Tomcat, ...) pour accéder au test sous l'URL HTTP. Sinon, il ne réussira pas.