2008-10-17 147 views
1

在模態中使用window.returnValue(variant)時是否存在最大長度?window.returnValue屬性允許的最大長度是多少? (JavaScript)

我使用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限制?

回答

1

首先,您在哪個瀏覽器中遇到問題? Firefox甚至不支持window.returnValue,甚至可能不支持其他瀏覽器。

其次,在構建它之後,您是否看過strUsers的值,以確保該字符串中沒有單引號或雙引號?

我猜想,該屬性的最大尺寸/長度將由系統內存決定,而不是其他任何事情。


編輯:也許你應該看看使用window.open()打開一個新的窗口,window.opener設置父窗體上的值,而不是 - 它是由更多的瀏覽器支持。只是一個建議...

0

我的用戶必須使用IE6(不是我的電話),並且模式已經連接到IE,所以這就是爲什麼我使用showModalDialog。

strUsers將永遠是一個逗號分隔的整數列表

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

JasonBunting有一個很好的建議。在關閉它之前,可以讓模式對話框更新父項。這樣,您可以在窗口之間來回傳遞對象,而無需擔心返回值的限制。例如,您可以使用返回值更新父級上的隱藏字段。

相關問題