La valeur de retour de showModalDialog peut être obtenue sous IE et Firefox, mais elle renverra Null sous Google Chrome. La solution est présentée ci-dessous.
Page parent :
Copiez le code comme suit :
fonction openwindows(){
var obj = nouvel objet ();
//Ouvre le sous-formulaire modal et récupère la valeur de retour
var retval = window.showModalDialog("ordervideo.jsp?rderIds="+"0010,0020,0030",obj,"dialogWidth=500px;dialogHeight=500px");
//pour chrome
if(retval == non défini) {
retval = window.returnValue ;
}
alerte (récupération);
}
Sous-page :
Copiez le code comme suit :
fonction onload(){
//pour chrome
if(window.opener != undefined) { //La valeur de window.opener n'est pas vide sous Google Chrome, mais n'est pas définie sous IE/Firefox, vous pouvez donc juger s'il s'agit de Google Chrome.
window.opener.returnValue = flag; //La méthode d'attribution d'une valeur de retour sous Google Chrome window.opener.close( // Celle-ci doit être fermée une fois, sinon la fenêtre pop-up ne peut pas être fermée en exécutant la fenêtre suivante .close(), car La fenêtre pop-up sous Google Chrome est une nouvelle fenêtre
}
autre {
window.returnValue=flag; //Cette méthode d'affectation est compatible avec IE/Firefox, mais ne prend pas en charge Google Chrome
}
window.close();
}