31

我在 IE10 上遇到了一个需要 JavaScript 回发的 ASP.NET 控件问题[例如,链接按钮]。

它在 IE9 版本以及 IE10 兼容模式下都能正常工作。但是在 IE10 标准模式下,它给出了以下错误。SCRIPT5009:“__doPostBack”未定义

[我用一个简单的 asp:link 按钮创建了一个演示项目,该按钮重定向到另一个页面。] IE10_错误画面

尝试了解决方案,但对我不起作用

任何人都可以建议解决这个问题吗?

4

4 回答 4

50

.NET 2.0 和 .NET 4 附带的浏览器定义文件中显然存在错误。定义文件不适合 IE10 作为浏览器版本,因此默认为不支持 JavaScript 的默认定义。

Scott Hanselman 在这里有关于这个问题的非常详细的文章:http ://www.hanselman.com/blog/BugAndFixASPNETFailsToDetectIE10CausingDoPostBackIsUndefinedJavaScriptErrorOrMaintainFF5ScrollbarPosition.aspx

Scott 提出了两种解决方案,第一种是推荐的:

1.机器范围 的修复在服务器上下载并安装一个修复程序:

2. 仅站点修复从 NuGet 安装App_BrowsersUpdate包到您的网站以导入新的 ie 和 firefox 浏览器定义。

于 2013-03-14T21:42:43.150 回答
1

如果您已尝试修复并且仍然在 IE11 中看到错误,则将 .net 框架更新到 4.5 即可。

于 2014-01-24T21:43:00.287 回答
0

IE 10 有问题:

它无法识别带有 _doPostBack 的链接【在 ASP Link Button 的 HTML 输出中基本可以看到】

您可以参考以下链接进行修复:

http://ronniediaz.com/2013/02/07/ie10-imagebutton-_dopostback-undefined-bug-with-update-panel-script-manager/

于 2013-04-15T11:53:00.327 回答
0

基本上发生了什么是缺少 2 个 html 隐藏元素“eventtarget”和“eventargument”,以及缺少函数“__doPostBack”。

DOM 中缺少这些。

我尝试了为此列出的所有修复程序,但没有一个有效。然而,使用 jquery 和 javascript 的组合有一个不显眼的解决方案。将此添加到您的 javascript 上准备好文档,然后您就可以参加比赛了(这比在您的服务器上安装 .net 框架 4.5 更快,尽管如果您可以安装 4.5 这就是要走的路):

if ($('#__EVENTTARGET').length <= 0 && $('#__EVENTARGUMENT').length <= 0) {
  $('#YOUR_ASPNET_FORMID').prepend('<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /><input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />');
}

if (typeof __doPostBack == 'undefined') {
  __doPostBack = function (eventTarget, eventArgument) { 
    var theForm = document.forms['YOUR_ASPNET_FORMID'];
    if (!theForm) {
      theForm = document.YOUR_ASPNET_FORMID;
    }
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
      theForm.__EVENTTARGET.value = eventTarget;
      theForm.__EVENTARGUMENT.value = eventArgument;
      theForm.submit();
    }
  };
}

我知道有些人说安装 4.5 解决了这个问题。我肯定会推荐的。但是,如果您像我一样在使用 .net 4 中烘焙的 cms 系统的企业公共站点上工作,这可能只是一个更简单的解决方案,而不是可能引入因更新您的平台而产生的新错误。

于 2014-02-07T09:24:31.560 回答