2008-10-17 13 views
1

Y at-il une longueur maximale lors de l'utilisation de window.returnValue (variant) dans un modal?Quelle est la longueur maximale autorisée pour la propriété window.returnValue? (JavaScript)

J'appelle une fenêtre modale en utilisant showModalDialog() et en retournant une chaîne délimitée par des virgules. Après avoir sélectionné un groupe d'utilisateurs, je les mets dans un stringbuilder pour les afficher dans un littéral.

Dim strReturn As New StringBuilder 
strReturn.Append("<script type=""text/javascript"">window.returnValue='") 
Dim strUsers As New StringBuilder 
For Each dtRow As DataRow In GetSelectedUserTable.Rows 
    If strUsers.ToString.Length > 0 Then 
     strUsers.Append(",") 
    End If 
    strUsers.Append(dtRow("UserID")) 
Next 
strReturn.Append(strUsers.ToString) 
strReturn.Append("';window.close();</script>") 
litReturnJavascript.Text = strReturn.ToString 

Y at-il une limite au nombre de caractères pouvant être ajoutés à window.returnValue?

Répondre

1

D'abord, dans quel navigateur rencontrez-vous des problèmes? window.returnValue n'est même pas pris en charge dans Firefox, peut-être même pas d'autres navigateurs. Deuxièmement, avez-vous regardé la valeur de strUsers après l'avoir construit pour vous assurer qu'il n'y a pas de guillemets simples ou doubles dans cette chaîne?

Je suppose que la taille maximale/longueur de cette propriété serait plus déterminée par la mémoire de votre système qu'autre chose.


EDIT: Peut-être que vous devriez envisager d'utiliser window.open() pour ouvrir une nouvelle fenêtre et window.opener pour définir la valeur sur le formulaire parent au lieu - il est pris en charge par d'autres navigateurs. Juste une suggestion ...

0

Mes utilisateurs doivent utiliser IE6 (pas mon appel), et le modal est déjà câblé pour IE, c'est pourquoi j'utilise showModalDialog.

strUsers sera toujours une liste délimitée par des virgules des entiers

E.G.: 384834,583882,343993,391823,302103 
0

JasonBunting a une bonne suggestion. Vous pouvez faire en sorte que la boîte de dialogue modale mette à jour le parent avant de le fermer. De cette façon, vous pouvez passer des objets d'avant en arrière entre vos fenêtres sans vous soucier de la limitation de la valeur de retour. Par exemple, vous pouvez avoir un champ caché sur le parent que vous mettez à jour avec vos valeurs de retour.

Questions connexes