动态创建的JavaScript函数不能使用long参数

时间:2015-10-29 16:22:51

标签: javascript html asp.net internet-explorer

我在ASP.NET中以编程方式生成了几个html A标记,其中一个JavaScript函数在href中使用了long参数。其中一个在后端分配时有超过20K字符,但我看到实际链接在浏览器端只有5239个字符,而JavaScript函数没有关闭。所以链接永远不会奏效。我正在考虑这个实现的变通方法,因为将大量数据放在链接中不是一个好主意,但现在我只是对这个问题的原因感到好奇。

为链接分配值的代码示例:

HtmlAnchor.HRef = "javascript:doSomething('Import','" + strHeader_LineIds + "');"

在这种情况下,变量strHeader_LineIds带有超过20k个字符的字符串。

我在客户端实际看到的例子:

<a id=anchor1 class=class1 href="javascript:doSomething('Import', 'blahblahblahblah....">Link Text</a>

请注意,这里的javascript函数没有关闭。但是当我在后端调试时,我确实看到了函数的关闭。

我想这个问题可能与浏览器的网址限制有关?我正在使用IE浏览器,我了解到IE的最大URL长度限制为Here的2,083个字符。但链接如何显示5,239个字符?

2 个答案:

答案 0 :(得分:0)

我遇到了类似javascript的问题,比如在代码中创建的动态函数,然后调用。我发现我必须在javascript函数中使用双引号或转义引号来换掉单引号。

然后再次阅读你的帖子可能是一个限制问题。

您是否尝试将long分配给后台中的元素,然后将其作为javacript的一部分引用。我知道IE传入参数的空格很有趣。

答案 1 :(得分:0)

我认为虽然找到了答案。根据{{​​3}}:

  

JavaScript URI   JavaScript协议用于bookmarklets(aka favlet),这是一种轻量级的可扩展性,允许用户单击按钮并在当前加载的页面上运行一些存储的JavaScript。在IE9中,团队做了一些工作来放宽长度限制(从大约260个字符,如果我没记错)到更大的东西(约5kb,如果我没记错的话)。

所以我只打了~5kb的限制。