使用错误的设置超时函数回发



我使用旧系统,在框架 1.0 上开发,现在在框架 2.0 上运行源代码是:

<select name="DropDownList1" AutoPostBack="true" id="DropDownList1" runat="server">
  <option selected="selected" value="One">One</option>
  <option value="Two">Two</option
</select>

生成的 html:

<select name="DropDownList1" onchange="javascript:setTimeout('__doPostBack('DropDownList1','')', 0)" id="DropDownList1">
  <option selected="selected" value="One">One</option>
  <option value="Two">Two</option>
</select>

直到我删除__doPostBack周围的引号,它才起作用。为什么?我收到一个 javascript 错误 1032:无效字符。我如何让它工作?谢谢!

在这里找到,经过一个小时来解决:https://groups.google.com/forum/#!topic/microsoft.public.scripting.vbscript/q_Yp5Ngczeo

答:如果在ASPX 页,以下语句将在 IE 中失败(错误是远非显而易见,因为它是不可捕获的,只说有一个第 1 行的字符无效,字符 2(:

"javascript:setTimeout('__doPostBack(\'anyASPXcontrol\',\'\'(', 0(">

这是IE 6和可能更早版本中的错误(我只有v6一起玩。 我不知道它是否会影响IE 7,因为我还没有安装最近用于测试。 请注意,即使前缀使用"javascript:",setTimeout 函数假设它正在调用VBScript 函数,大概是因为第一个脚本块是一个VBScript 块。

最新更新