mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 12:05:37 +00:00
Merge pull request #2351 from hafriedlander/fix/ie8brokenfonts
FIX webfonts in preview iframe breaking admin fonts
This commit is contained in:
commit
c396645aed
@ -224,15 +224,31 @@
|
|||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a style element we can use in IE8 to fix fonts (see readystatechange binding in onadd below)
|
||||||
|
*/
|
||||||
|
getOrAppendFontFixStyleElement: function() {
|
||||||
|
var style = $('#FontFixStyleElement');
|
||||||
|
if (!style.length) {
|
||||||
|
style = $(
|
||||||
|
'<style type="text/css" id="FontFixStyleElement" disabled="disabled">'+
|
||||||
|
':before,:after{content:none !important}'+
|
||||||
|
'</style>'
|
||||||
|
).appendTo('head');
|
||||||
|
}
|
||||||
|
|
||||||
|
return style;
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialise the preview element.
|
* Initialise the preview element.
|
||||||
*/
|
*/
|
||||||
onadd: function() {
|
onadd: function() {
|
||||||
var self = this, layoutContainer = this.parent();
|
var self = this, layoutContainer = this.parent(), iframe = this.find('iframe');
|
||||||
|
|
||||||
// Create layout and controls
|
// Create layout and controls
|
||||||
this.find('iframe').addClass('center');
|
iframe.addClass('center');
|
||||||
this.find('iframe').bind('load', function() {
|
iframe.bind('load', function() {
|
||||||
self._adjustIframeForPreview();
|
self._adjustIframeForPreview();
|
||||||
|
|
||||||
// Load edit view for new page, but only if the preview is activated at the moment.
|
// Load edit view for new page, but only if the preview is activated at the moment.
|
||||||
@ -242,6 +258,16 @@
|
|||||||
$(this).removeClass('loading');
|
$(this).removeClass('loading');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// If there's any webfonts in the preview, IE8 will start glitching. This fixes that.
|
||||||
|
if ($.browser.msie && 8 === parseInt($.browser.version, 10)) {
|
||||||
|
iframe.bind('readystatechange', function(e) {
|
||||||
|
if(iframe[0].readyState == 'interactive') {
|
||||||
|
self.getOrAppendFontFixStyleElement().removeAttr('disabled');
|
||||||
|
setTimeout(function(){ self.getOrAppendFontFixStyleElement().attr('disabled', 'disabled'); }, 0);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Preview might not be available in all admin interfaces - block/disable when necessary
|
// Preview might not be available in all admin interfaces - block/disable when necessary
|
||||||
this.append('<div class="cms-preview-overlay ui-widget-overlay-light"></div>');
|
this.append('<div class="cms-preview-overlay ui-widget-overlay-light"></div>');
|
||||||
this.find('.cms-preview-overlay').hide();
|
this.find('.cms-preview-overlay').hide();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user