【问题标题】:What is the maximum length allowed for window.returnValue property? (JavaScript)window.returnValue 属性允许的最大长度是多少? (JavaScript)
【发布时间】:2008-10-17 19:07:05
【问题描述】:

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

【问题讨论】:

    标签: asp.net javascript vb.net


    【解决方案1】:

    首先,您在哪个浏览器中遇到问题? Firefox 甚至不支持window.returnValue,甚至可能不支持其他浏览器。

    其次,在构建strUsers 之后,您是否查看过它的值以确保该字符串中没有单引号或双引号?

    我猜想该属性的最大大小/长度更多地取决于系统内存。


    编辑:也许您应该考虑使用window.open() 打开一个新窗口并使用window.opener 在父表单上设置值——更多浏览器支持它。只是一个建议...

    【讨论】:

      【解决方案2】:

      我的用户必须使用 IE6(不是我的电话),并且模式已经为 IE 连接,这就是我使用 showModalDialog 的原因。

      strUsers 将始终是一个以逗号分隔的整数列表

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

      【讨论】:

        【解决方案3】:

        JasonBunting 有一个很好的建议。您可以在关闭它之前让模态对话框更新父级。这样,您可以在窗口之间来回传递对象,而不必担心返回值的限制。例如,您可以在父节点上有一个隐藏字段,并使用您的返回值进行更新。

        【讨论】:

          猜你喜欢
          • 2018-08-06
          • 1970-01-01
          • 2014-12-31
          • 1970-01-01
          • 2023-03-13
          • 1970-01-01
          • 2017-11-15
          • 2013-05-31
          • 2013-03-09
          相关资源
          最近更新 更多