Today I had to troubleshoot an issue where a user was not able to use a website with Safari. When the user browsed the website the dropdown menus and buttons were not rendering.
This the look of the menu when the issue appears
While digging to find the root cause and a fix I realised that the problem wasn’t just with Safari 8. All these versions of Safari appeared to have the issue:
- Safari 8.0
- Safari 7.1
- Safari 6.1
- Safari on iOS 8
After some googling I found this thread in StackExchange were they clearly explain the reason and a fix.
Turns out Microsoft messed up a regular expression in their mozilla.browser definition file. The current Safaris are using the WebKit core version 600.xyz and Microsoft used “60” to match older versions of Safari. Therefore the server incorrectly identifies the browser as an old version and disables AJAX-Extensions.
You can verify that this is the cause by enabling the developer menu in Safari and changing the user agent to something other that …600…
For example this
As for the server fix, the file that contains this error is located at
and probably at here too
What you can do is add a dollar sign (end of line) just after the 60. Eg:
Once that is done on the server, the same website renders just fine in all the browsers mentioned above :)