Opened 13 months ago
Closed 12 months ago
#20582 closed defect (bug) (fixed)
Theme Customizer: IE 8/9 compatibility
| Reported by: |
|
Owned by: |
|
|---|---|---|---|
| Priority: | high | Milestone: | 3.4 |
| Component: | Appearance | Version: | 3.4 |
| Severity: | normal | Keywords: | needs-patch needs-testing |
| Cc: | koopersmith |
Description (last modified by ocean90)
I found some issues with the theme customizer in IE 8 and IE 9.
#1: IE 8 - Header image preview
There is an issue with the small header image preview in the sidebar:

#2: IE 8 - Iframe Preview doesn't load/render html5.js
Not sure what is going on here. It happens for example with the Twenty Eleven theme, see http://cl.ly/GHjI. Seems like IE 8 doesn't like html5.js in an iframe.
#3: IE 8 and IE 9 - No preview for background color (sometimes)
Scenario:
- Active Theme: Twenty Ten
- Open the customize screen for Twenty Elven
- Change the background color
- Expected: Color changes.
But it doesn't show the new color. (Workaround: Change the header text color and the background color will be updated too.)
#4: IE 8 and IE 9 - Links inside the iframe
Clicking on a link in the preview iframe loads the active theme with the Toolbar and your will lost all your preview settings. See http://cl.ly/GGev.
#5: IE 8 and IE 9 - Header/Background image upload doesn't work
Same as in Opera, see #20452.
Attachments (4)
Change History (33)
comment:2
koopersmith — 13 months ago
comment:3
koopersmith — 13 months ago
[20737] fixes points 3 and 4.
comment:4
SergeyBiryukov — 13 months ago
#2: IE 8 - Iframe Preview doesn't load/render html5.js
The culprit here is that the iframe content is loaded via AJAX:
http://code.google.com/p/html5shiv/issues/detail?id=4
comment:5
koopersmith — 13 months ago
In [20758]:
comment:23
koopersmith — 13 months ago
In [20761]:
#5: IE 8 and IE 9 - Header/Background image upload doesn't work
"Select a file" link works now, however "Drop a file here" area is visible in IE 8, which doesn't support HTML5 drag and drop.
SergeyBiryukov — 13 months ago
comment:25
ryan — 12 months ago
IE 8 and 9 don't seem to work with our cross domain support. The preview doesn't load. Possibly due to http://bugs.jquery.com/ticket/8283
comment:26
ryan — 12 months ago
comment:27
ryan — 12 months ago
Looks like we'll have to do a browser capability check when the frontend and backend domains don't match so that we can downgrade for IE8/9 but not for 10.
comment:28
azaozz — 12 months ago
Or something like: if ( IE < 10 && strpos( admin_url(), siteurl ) === false ) { no customizer }.
comment:29
azaozz — 12 months ago
Small code snippet for checking for IE < 10 and domain mismatch on multisite from PHP.
comment:30
nacin — 12 months ago
Rather than checking the MSIE version, we'd want to check the Trident version. Otherwise we may detect IE running in compatibility mode, which I doubt applies to the underlying JS engine.
get_home_url( get_current_blog_id() ) should be home_url(). And I am not sure this check should be specific to multisite.
What about mobile?
comment:31
azaozz — 12 months ago
In IE9 compatibility mode doesn't affect JS that much, however in IE10 it might affect it more. Thinking it would be safer (for now) to assume IE10 in compat mode would not work exactly the same as in "standards" mode in JS.
Right, home_url() (i.e. get_home_url( null ) which returns get_option( 'home' )) should work in all domain mapping cases for multisite.
comment:32
nacin — 12 months ago
We mustn't forget about the toolbar's Customize link as well. That may require a bit of server-side, hide-if-no-js, plus possibly removing the node if ! window.postMessage, etc.
comment:33
azaozz — 12 months ago
Right, got a JS based test for CORS support that looks good for all browsers:
function(){ var xhr = new XMLHttpRequest(); return ( 'withCredentials' in xhr ); }
However we need to hide/remove some links to the customizer (in the toolbar) and change others to point to the old preview (on the Themes screen) when in IE and cross-domain.
So to handle this in JS will have to output different href for the links and swap them later, or can handle it in PHP directly. Preferences?
comment:34
ryan — 12 months ago
- Priority changed from normal to high
comment:35
koopersmith — 12 months ago
In [20886]:
comment:32
koopersmith — 12 months ago
In [20893]:
SergeyBiryukov — 12 months ago
20582.preview-thumbnail.patch is an attempt to fix point 1 (header image preview). Tested in Firefox 12, Chrome 19, IE 8, Opera 11.64.
To summarize:
- point 1: Header image preview is too wide in IE 8
- comment:4: html5.js is not applied if the iframe content is loaded via AJAX
- comment:24: "Drop a file here" area is visible in IE 8, which doesn't support HTML5 drag and drop
comment:35
ocean90 — 12 months ago
comment:36
koopersmith — 12 months ago
In [20920]:
comment:37
nacin — 12 months ago
Fixed? Anything left?
html5.js and the drag/drop check. 20582.dragdrop.patch seems to fix the latter, but I guess the consensus was to use a Plupload instance.
comment:39
nacin — 12 months ago
Does the new version of the shiv (#20640) fix this?
comment:40
nacin — 12 months ago
I've pushed the shiv conversation to #20755.
The only thing remaining is the drag/drop issue, which koopersmith is working on.
comment:41
koopersmith — 12 months ago
In [20928]:
comment:5
koopersmith — 12 months ago
- Owner set to koopersmith
- Resolution set to fixed
- Status changed from new to closed
In [20930]:

In [20737]: