code de programme
fonction openEgg(type){
window.showModalDialog('../EggPlay.aspx?type='+type,'','dialogHeight: 600px; dialogWidth: 800px; bord: surélevé; centre: Oui; aide: Non; redimensionnable: Non; statut: Non; scroll:Non;');
}
Javascript possède de nombreuses méthodes intégrées pour générer des boîtes de dialogue, telles que window.alert(), window.confirm(), window.prompt(), etc. Cependant, IE propose davantage de méthodes pour prendre en charge les boîtes de dialogue. Tels que :
showModalDialog() (pris en charge par IE 4+)
showModelessDialog() (pris en charge par IE 5+)
La méthode window.showModalDialog() est utilisée pour créer une boîte de dialogue modale qui affiche du contenu HTML. Puisqu'il s'agit d'une boîte de dialogue, elle ne possède pas toutes les propriétés d'une fenêtre généralement ouverte avec window.open().
La méthode window.showModelessDialog() est utilisée pour créer une boîte de dialogue non modale qui affiche le contenu HTML.
Lorsque nous utilisons showModelessDialog() pour ouvrir une fenêtre, nous n'avons pas besoin d'utiliser window.close() pour la fermer. Lorsqu'elle est ouverte en mode non modal [IE5], la fenêtre qui ouvre la boîte de dialogue peut toujours effectuer d'autres tâches. opérations, c'est-à-dire que la boîte de dialogue n'est pas toujours ouverte. Elle constitue le focus principal et se ferme automatiquement lorsque l'URL de la fenêtre qui l'ouvre change. La boîte de dialogue modale [IE4] a toujours le focus (le focus ne peut pas être supprimé tant qu'elle n'est pas fermée). La boîte de dialogue modale est liée à la fenêtre qui l'a ouverte, donc lorsque nous ouvrons une autre fenêtre, leur relation de lien est toujours préservée et cachée sous la fenêtre active.
Comment l'utiliser :
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])
vReturnValue = window.showModelessDialog(sURL [, vArguments] [, sFeatures])
Description du paramètre :
URL
Paramètre obligatoire, tapez : chaîne. Utilisé pour spécifier l'URL du document à afficher dans la boîte de dialogue.
vArguments
Paramètre facultatif, tapez : variante. Utilisé pour transmettre des paramètres à la boîte de dialogue. Le type de paramètres transmis n'est pas limité, y compris les tableaux, etc. La boîte de dialogue obtient les paramètres transmis via window.dialogArguments.
Caractéristiques
Paramètre facultatif, tapez : chaîne. Utilisé pour décrire l'apparence de la boîte de dialogue et d'autres informations, vous pouvez utiliser un ou plusieurs des éléments suivants, séparés par des points-virgules ";".
dialogHeight est la hauteur de la boîte de dialogue, pas moins de 100 px. L'unité par défaut de dialogHeight et dialogWidth dans IE4 est em, tandis que dans IE5, elle est px. Pour plus de commodité, lors de la définition d'une boîte de dialogue modale, utilisez px comme unité.
dialogWidth : largeur de la boîte de dialogue.
dialogLeft : Distance depuis le côté gauche du bureau.
dialogTop : distance par rapport au bureau.
center: {yes | no 1 | 0} : si la fenêtre est centrée, la valeur par défaut est oui, mais la hauteur et la largeur peuvent toujours être spécifiées.
help: {yes | no 1 | 0} : s'il faut afficher le bouton d'aide, la valeur par défaut est oui.
redimensionnable : {oui | non | 1 | 0} [IE5+] : indique s'il peut être redimensionné. La valeur par défaut est non.
status: {yes | no 1 | 0} [IE5+] : s'il faut afficher la barre d'état. La valeur par défaut est oui[Modal] ou non[Modal].
scroll:{ oui | non | 1 | 0 | on off } : indique si la boîte de dialogue affiche des barres de défilement. La valeur par défaut est oui.
Il existe également plusieurs attributs utilisés dans HTA, qui ne sont généralement pas utilisés dans les pages Web ordinaires.
dialogHide:{ oui | non | 1 | 0 | on off } : indique si la boîte de dialogue est masquée lors de l'impression ou de l'aperçu avant impression. La valeur par défaut est non.
edge:{ sunken | raise } : Spécifie le style de bordure de la boîte de dialogue. La valeur par défaut est relevée.
sans fioritures :{ oui | non | 1 | 0 | on off } : la valeur par défaut est non.
Passer les paramètres :
Pour transmettre des paramètres à la boîte de dialogue, ils sont transmis via vArguments. Il n'y a aucune limite quant au type. Pour les types de chaîne, la longueur maximale est de 4 096 caractères. Vous pouvez également transmettre des objets, par exemple :
code de programme
test1.htm
====================
<script>
var mxh1 = new Array("mxh","net_lover","Mencius Chapitre E")
var mxh2 = window.open("about:blank","window_mxh")
// Passe le tableau à la boîte de dialogue
window.showModalDialog("test2.htm",mxh1)
// Passe l'objet window à la boîte de dialogue
window.showModalDialog("test3.htm",mxh2)
</script>
test2.htm
====================
<script>
var a = window.dialogArguments
alert("Les paramètres que vous avez passés sont : " + a)
</script>
test3.htm
====================
<script>
var a = window.dialogArguments
alert("Le paramètre que vous avez passé est un objet fenêtre, nom : " + a.name)
</script>
Les informations peuvent être renvoyées à la fenêtre qui a ouvert la boîte de dialogue via window.returnValue, et bien sûr, elles peuvent également être un objet. Par exemple:
code de programme
test4.htm
===================
<script>
var a = window.showModalDialog("test5.htm")
pour(i=0;i<a.length;i++) alerte(a[i])
</script>
test5.htm
===================
<script>
fonction envoyerÀ()
{
var a=nouveau tableau("a","b")
window.returnValue = un
fenêtre.close()
}
</script>
<corps>
<formulaire>
<input value="Return" type=button onclick="sendTo()">
</form>
FAQ :
1. Comment soumettre dans une boîte de dialogue modale sans ouvrir une nouvelle fenêtre ?
Si votre navigateur est IE5.5+, vous pouvez utiliser une iframe avec un attribut de nom dans la boîte de dialogue et vous pouvez définir la cible comme étant le nom de l'iframe lors de la soumission. Pour IE4+, vous pouvez utiliser un cadre d'une hauteur de 0 : exemple,
code de programme
test6.htm
===================
<script>
window.showModalDialog("test7.htm")
</script>
test7.htm
===================
si (window.location.search) alerte (window.location.search)
<lignes du jeu de cadres="0,*">
<frame src="/blog/about:blank">
<frame src="test8.htm">
</frameset>
test8.htm
===================
<form target="_self" method="get">
<input name=txt value="test">
<type d'entrée=soumettre>
</form>
<script>
si (window.location.search) alerte (window.location.search)
</script>
2. Les paramètres peuvent-ils être transmis directement à la boîte de dialogue via http://servername/virtualdirname/test.htm?name=mxh ?
La réponse est non. Mais c'est possible dans le cadre.