New Safari <10.1 compatibility issue [resolved]

A forum member reported that she was unable to access this morning on her iPad. In the logs there are lots of errors regarding “e.getRootNode is not a function”. I asked her to try in safe mode and when she did, the problem persisted (so I don’t think this problem relates to plugins or customisation)

The stack trace identified in the error is Ke@

The user agent is “Mozilla/5.0 (iPad; CPU OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0 Mobile/14C92 Safari/602.1”

Is it possible the version of Safari is the problem?

I note on the getRootNode browser compatibility matrix, it was only supported since version Safari version 10.1, and the user agent indicates version 10


Okay I’ve done some more digging in the Discourse code base.

I found one reference to getRootNode, and it was added six days ago by @joffreyjaffeux (no personal blame intended by my post). The file is vendor/assets/javascripts/jquery.js (note that you may need to click to expand in the github diff as it’s a large file)

I believe this change has inadvertently affected backward compatibility with older browsers that we might hope that Discourse would continue to support (the user in my case was using an iPad Mini 2 running iOS 10.2, which is by no means prehistoric)


Yes it’s a bug of jQuery 3.4 which is supposed to support this version of safari.

Looks like it’s been fixed 3 days ago:

And jquery 3.4.1 jQuery 3.4.1: triggering focus events in IE and finding root elements in iOS 10 | Official jQuery Blog just has been released, will update it.


Excellent, thank you!

1 Like

Will be fixed by:

Thanks for report


This topic was automatically closed after 6 hours. New replies are no longer allowed.