ZoomBySite and OS X Yosemite / Safari 8 / JQuery

I’ve received a number of reports of ZoomBySite not working on OS X Yosemite and/or Safari 8.

I’m not aware of any issues with ZoomBySite and these versions of OS X and Safari, but there are a couple of things that might be causing problems for people.

If the zoom level is not remembered for any site, then check to see if ZoomBySite is enabled (Safari Preferences -> Extensions -> ZoomBySite -> Enable ZoomBySite checkbox). I’ve heard from some people that the ZoomBySite extension was disabled as part of the upgrade process of either OS X or Safari.

If the zoom level works for some sites but not others, then the issue might be with the version of the Javascript JQuery library that the site uses.

One site that seems to be affected by this is forums.macrumors.com. The issue here seems to be a bug with JQuery 1.9.0 that has since been fixed in JQuery 1.9.1. The bug causes the browser to set the zoom level of the body tag to 1, which overrides the zoom level that ZoomBySite sets. It might appear as if the page zooms to the desired level for a split second, but then returns to no zoom. The MacRumors team is looking into working around this by upgrading the version of JQuery that they use.

There also appear to be issues with other versions of JQuery as well. These versions of JQuery intentionally set the zoom level of the body tag to 1 in order to work around a bug in Safari. The Safari bug still appears to be open, but only the following versions of JQuery seem to use the workaround that breaks ZoomBySite:

  • JQuery 1.10.0
  • JQuery 1.10.1
  • JQuery 1.10.2
  • JQuery 1.11.0
  • JQuery 2.0.0
  • JQuery 2.0.1
  • JQuery 2.0.2
  • JQuery 2.0.3

The following versions of JQuery seem to have no problem:

  • JQuery 1.9.1
  • JQuery 1.11.1 (the latest 1.x release)
  • JQuery 2.1.0
  • JQuery 2.1.1 (the latest 2.x release)

These are just guesses based on looking at the JQuery source code.