SharePoint 2010 HTML5 and IE9 Compatibility Issues

Saturday, November 24 2012

 

Hi folks.  I decided it was time to provide an update, particularly as relates to SP2010 and HTML5 compatibility.  Over the months, I’m sure many of you who have played with this package have stumbled across some of the “gotchas” of HTML5 in SharePoint 2010.  Particularly with some of the JavaScript in SharePoint there were some unfortunate and unexpected behaviors and failures in functionality.  I cannot claim credit for most of the work that went into these patches.  The majority of the credit goes to Matt Olson who spent a great deal of effort analyzing and proposing solutions for the incompatibilities.  I’m sure as you work with the solutions, you join me in appreciation for his contributions to the SharePoint Community.

 In my efforts to resolve these incompatibilities, I had to deviate from the initial objective to provide the solution as a 100% sandbox solution.  The added complexity of handling the changes to the JavaScript did not make sense.  It was far more expedient and effective to overwrite some of the JavaScript routines in the 14 directory.  What this means for you,  should you decide to install these patches, is that they will be deployed as a “farm solution” and you will need to be or work with your SharePoint farm administrator to deploy them.

 The downside of this approach is that the solution package may need to be redeployed after upgrades.  Many folks will recommend strongly against changing any of the SharePoint files because of supportability and upgrade issues.  In this case, I chose this approach and it has worked well for me in several different environments, and it has been usable in production as long as the caveats are understood.  More importantly, I wanted to provide a mechanism that allowed continued exploration of HTML5 in SharePoint 2010.  This package works for me and I offer it to you “as is”.  Use it, change it, recommend modifications, or join the project and contribute your work.

 After you have deployed the solution to the farm, you will need to make some additional changes to the Master Page in the template to reference the new overrides.  These should be added after the other added JavaScript references at the bottom of the “head” tag.

 

If you choose to deploy this solution to production, you may want to consider “minifying” the libraries (to improve performance and decrease size, at the expense of loss of ease in debugging), and to combine all of the IE9 Fixes into a single library.

 

Hopefully over the approaching Holidays, I will be able to post some examples of using the JavaScript Client Object Model to expose both SharePoint and External lists and demonstrate the use of jQueryUI and some other UI libraries into your template.

 

At that point, our journey should be complete and hopefully you will be making your own discoveries and sharing them with the rest of our SharePoint community.