diff --git a/src/display/font_loader.js b/src/display/font_loader.js index a1870f5fc..10bdefd3d 100644 --- a/src/display/font_loader.js +++ b/src/display/font_loader.js @@ -59,13 +59,10 @@ FontLoader.prototype = { }, clear: function fontLoaderClear() { - var styleElement = this.styleElement; - if (styleElement) { - if (styleElement.parentNode) { - // Prevent "TypeError: styleElement.parentNode is null" during testing. - styleElement.parentNode.removeChild(styleElement); - } - styleElement = this.styleElement = null; + if (this.styleElement) { + // Note: ChildNode.remove doesn't throw if the parentNode is undefined. + this.styleElement.remove(); + this.styleElement = null; } if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('MOZCENTRAL')) { this.nativeFontFaces.forEach(function(nativeFontFace) { diff --git a/web/compatibility.js b/web/compatibility.js index 094b9629e..2b4fe85f4 100644 --- a/web/compatibility.js +++ b/web/compatibility.js @@ -646,4 +646,17 @@ if (typeof PDFJS === 'undefined') { }); })(); +// Provides support for ChildNode.remove in legacy browsers. +// Support: IE. +(function checkChildNodeRemove() { + if (typeof Element.prototype.remove !== 'undefined') { + return; + } + Element.prototype.remove = function () { + if (this.parentNode) { + this.parentNode.removeChild(this); + } + }; +})(); + }).call((typeof window === 'undefined') ? this : window); diff --git a/web/grab_to_pan.js b/web/grab_to_pan.js index 803bdaa62..bdd37a5dd 100644 --- a/web/grab_to_pan.js +++ b/web/grab_to_pan.js @@ -184,9 +184,8 @@ this.element.removeEventListener('scroll', this._endPan, true); this.document.removeEventListener('mousemove', this._onmousemove, true); this.document.removeEventListener('mouseup', this._endPan, true); - if (this.overlay.parentNode) { - this.overlay.parentNode.removeChild(this.overlay); - } + // Note: ChildNode.remove doesn't throw if the parentNode is undefined. + this.overlay.remove(); } };