在模态中使用window.returnValue(variant)时是否有最大长度?
我使用showModalDialog()调用模态窗口并返回逗号分隔的字符串。选择一组用户后,我将它们放入字符串构建器中以文字显示。
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
那么对window.returnValue添加多少个字符会有限制吗?
答案 0 :(得分:1)
首先,您在哪个浏览器中遇到问题? Firefox甚至不支持window.returnValue
,甚至其他浏览器也不支持。
其次,在构建它之后你是否看过strUsers
的值以确保该字符串中没有单引号或双引号?
我猜这个属性的最大大小/长度将由你的系统内存决定,而不是其他任何东西。
编辑:也许你应该看看使用window.open()
打开一个新窗口而window.opener
来设置父窗体上的值 - 更多浏览器支持它。只是一个建议......
答案 1 :(得分:0)
我的用户必须使用IE6(而不是我的电话),并且模式已经连接到IE,这就是我使用showModalDialog的原因。
strUsers将始终是以逗号分隔的整数列表
E.G.: 384834,583882,343993,391823,302103
答案 2 :(得分:0)
JasonBunting有一个很好的建议。在关闭父级之前,可以让模式对话框更新父级。这样,您可以在窗口之间来回传递对象,而无需担心返回值的限制。例如,您可以在父级上使用返回值更新隐藏字段。