__ DopoStback在Dotnetnuke网站上未定义为IE 10



我有一个dotnetnuke网站,今天有一个客户呼吁使用它。模式。我看了一下测试Windows 8机器,发现它失败了,因为__doPostBack未定义。我一直在搜索过去6个小时的修复程序,并且我能找到的是,显然IE10用户代理在IE..browser文件中介绍,我应该安装此hotfix并重新启动服务器。那没用。我没有注意到任何更改,即使我认为新的ie.browser文件应该 匹配新的用户代理。

我还可以采取哪些其他步骤来解决问题?注意:服务器在Windows Server 2003上使用Service Pack 1运行.NET 3.5。该站点正在运行dotnetnuke 05.06.02。任何建议都将不胜感激。

请参阅Scott Hanselman的这篇文章:

"错误和修复:ASP.NET无法检测到IE10引起_dopostback是未定义的JavaScript错误或维护FF5 scrollbar位置"

在我的生产网站上,我尝试了一些事情,但它们没有起作用。

我安装了hotfix并重新启动 - 没有好

我在更新的IE.Browser文件上复制了 - 没有好

我尝试修改default.browser,ie.browser和mozilla.browser文件以启用所有内容的JavaScript-不好。

我做的一件事最终使它起作用(这应该适合所有内容)在Default.aspx.vb文件的InitializePage函数中,我将此行添加到SubRoutine

的开始中
Page.ClientTarget = "uplevel"

应该(据我所知)对待所有浏览器,就像他们可以处理JavaScript和Cookie以及我们需要的所有其他内容一样。我觉得这是一个非常安全的选择。

还有另一种配置,如果存在于Web.config中,则覆盖了Scott Hanselman的提议修复程序:

<browserCaps>

ASP.NET浏览器能力嗅探器可以通过3种方式进行配置(相互覆盖):

  1. Machine wide in <windir>Microsoft.NETFramework<ver>CONFIGBrowsers
  2. Site only by using .browser files in App_Browsers folder
  3. Site only by using <browserCaps> Element in web.config

对于IE10,在<browserCaps> <case "Mozilla .. MSIE ..>下添加以下情况:

<case match="d{2,}" with="${version}">
  frames=true
  tables=true
  cookies=true
  backgroundsounds=true
  vbscript=true
  javascript=true
  javaapplets=true
  activexcontrols=true
  tagwriter=System.Web.UI.HtmlTextWriter
  ecmascriptversion=3.0
  msdomversion=${major}${minor}
  w3cdomversion=1.0
  css1=true
  css2=true
  xml=true
  <filter with="${letters}" match="^b">
    beta=true
  </filter>
  <filter with="${extra}" match="Crawler">
    crawler=true
  </filter>
</case>

最新更新