window.returnValue属性允许的最大长度是多少? (JavaScript的)

时间:2008-10-17 19:07:06

标签: asp.net javascript vb.net

在模态中使用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添加多少个字符会有限制吗?

3 个答案:

答案 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有一个很好的建议。在关闭父级之前,可以让模式对话框更新父级。这样,您可以在窗口之间来回传递对象,而无需担心返回值的限制。例如,您可以在父级上使用返回值更新隐藏字段。