javascript参数字符长度限制?

时间:2011-11-02 20:52:59

标签: c# javascript .net visual-studio-2010

我正在从.net中的代码后面发送一个javascript函数。问题是字符串长度超过200个字符,javascript函数似乎不接受字符串。这个变量有多长是可以限制的,并且可以解决这个问题吗?

 If dr("ReturnType").ToString() = "Override" Then
                    Dim teststring As String = "openWin('" & dr("ReturnValue").ToString() & "');"
                    ScriptManager.RegisterStartupScript(Me, Me.[GetType](), "openWin", teststring, True)
                End If

3 个答案:

答案 0 :(得分:4)

是的,有一个限制:大约2GB,它可以存储在.NET中的字符串中。但是因为我们可以安全地假设你没有从服务器向客户端发送这种卷(或者至少我们可以希望),另一种可能性是你的字符串没有被编码。因此在将其发送到客户端之前对其进行编码。确保字符串或对象正确编码的最佳方法是JSON序列化它。在.NET中,可以使用JavaScriptSerializer类轻松实现:

var value = new JavaScriptSerializer().Serialize("some string that contains ' and \".");
var script = string.Format("alert({0});", value);
ClientScript.RegisterStartupScript(GetType(), "someKey", script, true);

答案 1 :(得分:3)

没有

你可能忘了逃避字符串。

答案 2 :(得分:0)

最大文字字符串长度会因实现而异,但在现代浏览器中,长度可能仅限于浏览器可用的内存量。

例如,我刚刚尝试在Chrome中进行测试,在我决定杀死该进程之前,它让我为单个字符串文字消耗了超过400 MB的内存。