I have a DotNetNuke site, and today a customer called in and said it wasn't working on IE 10. Specifically the login and register links weren't working, but they do in compatibility mode. I took a look on our test windows 8 machine and saw that it was failing because __doPostBack
was undefined. I've been searching for a fix for the last 6ish hours, and what I've been able to find is that apparently the IE10 user agent is covered in the ie.browser file and that I should install this hotfix and reboot the server. That didn't work. I haven't noticed any changes, even though I think the new ie.browser file should match the new user agent.
What other steps can I take to fix the problem? Note: the server is running .NET 3.5 with service pack 1 on Windows server 2003. The site is running DotNetNuke 05.06.02. Any suggestions would be greatly appreciated.
See this post by Scott Hanselman:
"Bug and Fix: ASP.NET fails to detect IE10 causing _doPostBack is undefined JavaScript error or maintain FF5 scrollbar position"
On my production site I tried a few things and they didn't work.
I installed the hotfix and rebooted - no good
I copied over the updated ie.browser file - no good
I tried modifying the default.browser, the ie.browser, and the mozilla.browser files to enable javascript for everything - no good.
One thing I did that finally made it work (and this should work for EVERYTHING) is in the InitializePage
function of the Default.aspx.vb
file, I added this line to the start of the subroutine
Page.ClientTarget = "uplevel"
That should (from what I understand) treat ALL browsers as if they can handle javascript and cookies and all that other stuff we need. I feel like that's a pretty safe bet.
There's another config that if exist in web.config overrides Scott Hanselman's proposed fixes:
<browserCaps>
ASP.NET browser capability sniffer could be configured in 3 ways (overrides each other):
Machine wide in <windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers
Site only by using .browser files in App_Browsers folder
Site only by using <browserCaps> Element in web.config
for IE10 add the following case under <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>