diff --git a/examples/grapheditor/www/js/Editor.js b/examples/grapheditor/www/js/Editor.js index 1b821ecb2..93a8ccc60 100644 --- a/examples/grapheditor/www/js/Editor.js +++ b/examples/grapheditor/www/js/Editor.js @@ -366,9 +366,7 @@ Editor.prototype.editAsNew = function(xml, title) p += ((p.length > 0) ? '&' : '?') + 'ui=' + urlParams['ui']; } - if (typeof window.postMessage !== 'undefined' && - (document.documentMode == null || - document.documentMode >= 10)) + if (typeof window.postMessage !== 'undefined' ) { var wnd = null; @@ -386,11 +384,6 @@ Editor.prototype.editAsNew = function(xml, title) p + ((p.length > 0) ? '&' : '?') + 'client=1'), null, true); } - else - { - this.graph.openLink(this.getEditBlankUrl(p) + - '#R' + encodeURIComponent(xml)); - } }; /** diff --git a/examples/grapheditor/www/js/EditorUi.js b/examples/grapheditor/www/js/EditorUi.js index cf360bf25..c93bdbddb 100644 --- a/examples/grapheditor/www/js/EditorUi.js +++ b/examples/grapheditor/www/js/EditorUi.js @@ -1789,12 +1789,7 @@ EditorUi.prototype.initCanvas = function() var st = graph.container.scrollTop; var sl = graph.container.scrollLeft; var sb = 14; - - if (document.documentMode == 8 || document.documentMode == 9) - { - sb += 3; - } - + var cw = graph.container.offsetWidth - sb; var ch = graph.container.offsetHeight - sb; @@ -4214,18 +4209,11 @@ EditorUi.prototype.extractGraphModelFromEvent = function(evt) if (provider != null) { - if (document.documentMode == 10 || document.documentMode == 11) + data = (mxUtils.indexOf(provider.types, 'text/html') >= 0) ? provider.getData('text/html') : null; + + if (mxUtils.indexOf(provider.types, 'text/plain' && (data == null || data.length == 0))) { - data = provider.getData('Text'); - } - else - { - data = (mxUtils.indexOf(provider.types, 'text/html') >= 0) ? provider.getData('text/html') : null; - - if (mxUtils.indexOf(provider.types, 'text/plain' && (data == null || data.length == 0))) - { - data = provider.getData('text/plain'); - } + data = provider.getData('text/plain'); } if (data != null) diff --git a/examples/grapheditor/www/js/Format.js b/examples/grapheditor/www/js/Format.js index fba35bd00..33a7d78ac 100644 --- a/examples/grapheditor/www/js/Format.js +++ b/examples/grapheditor/www/js/Format.js @@ -805,7 +805,7 @@ BaseFormatPanel.prototype.createStepper = function(input, update, step, height, step = (step != null) ? step : 1; height = (height != null) ? height : 8; - if (mxClient.IS_MT || document.documentMode >= 8) + if (mxClient.IS_MT) { height = height + 1; } @@ -6154,7 +6154,7 @@ DiagramFormatPanel.prototype.addView = function(div) btn.style.position = 'absolute'; btn.className = 'geColorBtn'; btn.style.marginTop = '-4px'; - btn.style.paddingBottom = (document.documentMode == 11 || mxClient.IS_MT) ? '0px' : '2px'; + btn.style.paddingBottom = mxClient.IS_MT ? '0px' : '2px'; btn.style.height = '22px'; btn.style.right = '72px'; btn.style.width = '56px'; diff --git a/examples/grapheditor/www/js/Menus.js b/examples/grapheditor/www/js/Menus.js index ea9eaa431..d3e88f094 100644 --- a/examples/grapheditor/www/js/Menus.js +++ b/examples/grapheditor/www/js/Menus.js @@ -1264,20 +1264,10 @@ Menus.prototype.menuCreated = function(menu, elt, className) if (!menu.enabled) { elt.className = className + ' mxDisabled'; - - if (document.documentMode == 8) - { - elt.style.color = '#c3c3c3'; - } } else { elt.className = className; - - if (document.documentMode == 8) - { - elt.style.color = ''; - } } }); } diff --git a/src/js/editor/mxEditor.js b/src/js/editor/mxEditor.js index 83fa71db0..1a6fbf52f 100644 --- a/src/js/editor/mxEditor.js +++ b/src/js/editor/mxEditor.js @@ -2519,10 +2519,6 @@ class mxEditor extends mxEventSource { div.style.background = 'white'; div.style.cursor = 'move'; - if (document.documentMode == 8) { - div.style.filter = 'progid:DXImageTransform.Microsoft.alpha(opacity=100)'; - } - var wnd = new mxWindow( mxResources.get(this.outlineResource) || this.outlineResource, diff --git a/src/js/mxClient.js b/src/js/mxClient.js index 5b2864c0c..f4b349e5e 100644 --- a/src/js/mxClient.js +++ b/src/js/mxClient.js @@ -30,21 +30,6 @@ var mxClient = { */ IS_EDGE: navigator.userAgent != null && !!navigator.userAgent.match(/Edge\//), - /** - * Variable: IS_QUIRKS - * - * True if the current browser is Internet Explorer and it is in quirks mode. - */ - IS_QUIRKS: navigator.userAgent != null && navigator.userAgent.indexOf('MSIE') >= 0 && - (document.documentMode == null || document.documentMode == 5), - - /** - * Variable: IS_EM - * - * True if the browser is IE11 in enterprise mode (IE8 standards mode). - */ - IS_EM: 'spellcheck' in document.createElement('textarea') && document.documentMode == 8, - /** * Variable: IS_NS * diff --git a/src/js/shape/mxShape.js b/src/js/shape/mxShape.js index b1c4f6f11..e1f3c1469 100644 --- a/src/js/shape/mxShape.js +++ b/src/js/shape/mxShape.js @@ -474,7 +474,7 @@ class mxShape { /** * Function: redrawShape * - * Updates the SVG or VML shape. + * Updates the SVG shape. */ redrawShape = () => { var canvas = this.createCanvas(); @@ -492,16 +492,6 @@ class mxShape { this.node.insertAdjacentHTML('beforeend', canvas.root.outerHTML); } - if (this.node.nodeName === 'DIV' && document.documentMode === 8) { - // Makes DIV transparent to events for IE8 in IE8 standards - // mode (Note: Does not work for IE9 in IE8 standards mode - // and not for IE11 in enterprise mode) - this.node.style.filter = ''; - - // Adds event transparency in IE8 standards - mxUtils.addTransparentBackgroundFilter(this.node); - } - this.destroyCanvas(canvas); } }; @@ -573,46 +563,6 @@ class mxShape { return canvas; }; - /** - * Function: createVmlCanvas - * - * Creates and returns an for rendering this shape. - */ - createVmlCanvas = () => { - // Workaround for VML rendering bug in IE8 standards mode - var node = (document.documentMode === 8 && this.isParseVml()) ? this.createVmlGroup() : this.node; - var canvas = new mxVmlCanvas2D(node, false); - - if (node.tagUrn != '') { - var w = Math.max(1, Math.round(this.bounds.width)); - var h = Math.max(1, Math.round(this.bounds.height)); - node.coordsize = (w * this.vmlScale) + ',' + (h * this.vmlScale); - canvas.scale(this.vmlScale); - canvas.vmlScale = this.vmlScale; - } - - // Painting relative to top, left shape corner - var s = this.scale; - canvas.translate(-Math.round(this.bounds.x / s), -Math.round(this.bounds.y / s)); - - return canvas; - }; - - /** - * Function: updateVmlContainer - * - * Updates the bounds of the VML container. - */ - updateVmlContainer = () => { - this.node.style.left = Math.round(this.bounds.x) + 'px'; - this.node.style.top = Math.round(this.bounds.y) + 'px'; - var w = Math.max(1, Math.round(this.bounds.width)); - var h = Math.max(1, Math.round(this.bounds.height)); - this.node.style.width = w + 'px'; - this.node.style.height = h + 'px'; - this.node.style.overflow = 'visible'; - }; - /** * Function: redrawHtml * diff --git a/src/js/shape/mxText.js b/src/js/shape/mxText.js index 223a292cd..e30f54f16 100644 --- a/src/js/shape/mxText.js +++ b/src/js/shape/mxText.js @@ -482,37 +482,7 @@ class mxText extends mxShape { var sizeDiv = node; - if (document.documentMode == 8 && !mxClient.IS_EM) { - var w = Math.round(this.bounds.width / this.scale); - - if (this.wrap && w > 0) { - node.style.wordWrap = mxConstants.WORD_WRAP; - node.style.whiteSpace = 'normal'; - - if (node.style.wordWrap != 'break-word') { - // Innermost DIV is used for measuring text - var divs = sizeDiv.getElementsByTagName('div'); - - if (divs.length > 0) { - sizeDiv = divs[divs.length - 1]; - } - - ow = sizeDiv.offsetWidth + 2; - divs = this.node.getElementsByTagName('div'); - - if (this.clipped) { - ow = Math.min(w, ow); - } - - // Second last DIV width must be updated in DOM tree - if (divs.length > 1) { - divs[divs.length - 2].style.width = ow + 'px'; - } - } - } else { - node.style.whiteSpace = 'nowrap'; - } - } else if (sizeDiv.firstChild != null && sizeDiv.firstChild.nodeName == 'DIV') { + if (sizeDiv.firstChild != null && sizeDiv.firstChild.nodeName == 'DIV') { sizeDiv = sizeDiv.firstChild; } diff --git a/src/js/util/mxLog.js b/src/js/util/mxLog.js index 165f6889e..2debdbd19 100644 --- a/src/js/util/mxLog.js +++ b/src/js/util/mxLog.js @@ -180,8 +180,7 @@ var mxLog = // Workaround for ignored textarea height in various setups if ((mxClient.IS_NS && !mxClient.IS_GC && - !mxClient.IS_SF && document.compatMode != 'BackCompat') || - document.documentMode == 11) + !mxClient.IS_SF && document.compatMode != 'BackCompat')) { var elt = mxLog.window.getElement(); diff --git a/src/js/util/mxPopupMenu.js b/src/js/util/mxPopupMenu.js index 3e8078df9..be8d11152 100644 --- a/src/js/util/mxPopupMenu.js +++ b/src/js/util/mxPopupMenu.js @@ -538,12 +538,6 @@ isMenuShowing = ()=> */ showMenu = ()=> { - // Disables filter-based shadow in IE9 standards mode - if (document.documentMode >= 9) - { - this.div.style.filter = 'none'; - } - // Fits the div inside the viewport document.body.appendChild(this.div); mxUtils.fit(this.div); diff --git a/src/js/util/mxSvgCanvas2D.js b/src/js/util/mxSvgCanvas2D.js index 3d1769219..335ede1bb 100644 --- a/src/js/util/mxSvgCanvas2D.js +++ b/src/js/util/mxSvgCanvas2D.js @@ -898,7 +898,7 @@ mxSvgCanvas2setLink = (link)=> // Workaround for implicit namespace handling in HTML5 export, IE adds NS1 namespace so use code below // in all IE versions except quirks mode. KNOWN: Adds xlink namespace to each image tag in output. - if (node.setAttributeNS == null || (this.root.ownerDocument != document && document.documentMode == null)) + if (node.setAttributeNS == null || (this.root.ownerDocument != document)) { node.setAttribute('xlink:href', link); } diff --git a/src/js/util/mxUtils.js b/src/js/util/mxUtils.js index 82e93cada..90211d8e0 100644 --- a/src/js/util/mxUtils.js +++ b/src/js/util/mxUtils.js @@ -3373,11 +3373,6 @@ var mxUtils = { doc.open(); } - // Workaround for missing print output in IE9 standards - if (document.documentMode == 9) { - doc.writeln(''); - } - var bounds = graph.getGraphBounds(); var dx = Math.ceil(x0 - bounds.x); var dy = Math.ceil(y0 - bounds.y); diff --git a/src/js/util/mxWindow.js b/src/js/util/mxWindow.js index d4d79242b..83d296881 100644 --- a/src/js/util/mxWindow.js +++ b/src/js/util/mxWindow.js @@ -279,14 +279,6 @@ minimumSize = new mxRectangle(0, 0, 50, 40); */ destroyOnClose = true; -/** - * Variable: contentHeightCorrection - * - * Defines the correction factor for computing the height of the contentWrapper. - * Default is 6 for IE 7/8 standards mode and 2 for all other browsers and modes. - */ -contentHeightCorrection = (document.documentMode == 8 || document.documentMode == 7) ? 6 : 2; - /** * Variable: title * @@ -358,11 +350,6 @@ init = (x, y, width, height, style)=> tr = document.createElement('tr'); this.td = document.createElement('td'); this.td.className = style + 'Pane'; - - if (document.documentMode == 7) - { - this.td.style.height = '100%'; - } this.contentWrapper = document.createElement('div'); this.contentWrapper.className = style + 'Pane'; diff --git a/src/js/util/mxXmlRequest.js b/src/js/util/mxXmlRequest.js index a46fe8fd9..2e6ecf826 100644 --- a/src/js/util/mxXmlRequest.js +++ b/src/js/util/mxXmlRequest.js @@ -243,7 +243,7 @@ getXml = ()=> // type errors in the mxCellCodec when putting the nodes into a new // document. This happens in IE9 standards mode and with XML user // objects only, as they are used directly as values in cells. - if (document.documentMode >= 9 || xml == null || xml.documentElement == null) + if (xml == null || xml.documentElement == null) { xml = mxUtils.parseXml(this.request.responseText); } @@ -336,7 +336,7 @@ send = (onload, onerror, timeout, ontimeout)=> this.request.withCredentials = 'true'; } - if ((document.documentMode == null || document.documentMode > 9) && + if ((document.documentMode == null) && window.XMLHttpRequest && timeout != null && ontimeout != null) { this.request.timeout = timeout; diff --git a/src/js/view/mxCellEditor.js b/src/js/view/mxCellEditor.js index 645584e21..1bb932804 100644 --- a/src/js/view/mxCellEditor.js +++ b/src/js/view/mxCellEditor.js @@ -451,17 +451,8 @@ installListeners = (elt)=> mxEvent.addListener(elt, evtName, resizeHandler); mxEvent.addListener(window, 'resize', resizeHandler); - - if (document.documentMode >= 9) - { - mxEvent.addListener(elt, 'DOMNodeRemoved', resizeHandler); - mxEvent.addListener(elt, 'DOMNodeInserted', resizeHandler); - } - else - { - mxEvent.addListener(elt, 'cut', resizeHandler); - mxEvent.addListener(elt, 'paste', resizeHandler); - } + mxEvent.addListener(elt, 'cut', resizeHandler); + mxEvent.addListener(elt, 'paste', resizeHandler); }; /** @@ -604,7 +595,7 @@ resize = ()=> this.textarea.style.whiteSpace = 'normal'; // Forces automatic reflow if text is removed from an oversize label and normal word wrap - var tmp = Math.round(this.bounds.width / ((document.documentMode == 8) ? scale : scale)) + this.wordWrapPadding; + var tmp = Math.round(this.bounds.width / scale) + this.wordWrapPadding; if (this.textarea.style.position != 'relative') { diff --git a/src/js/view/mxGraphView.js b/src/js/view/mxGraphView.js index 6d8f2141a..79f583907 100644 --- a/src/js/view/mxGraphView.js +++ b/src/js/view/mxGraphView.js @@ -692,25 +692,6 @@ validateBackgroundImage = ()=> this.backgroundImage.dialect = this.graph.dialect; this.backgroundImage.init(this.backgroundPane); this.backgroundImage.redraw(); - - // Workaround for ignored event on background in IE8 standards mode - if (document.documentMode == 8 && !mxClient.IS_EM) - { - mxEvent.addGestureListeners(this.backgroundImage.node, - mxUtils.bind(this, (evt)=> - { - this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN, new mxMouseEvent(evt)); - }), - mxUtils.bind(this, (evt)=> - { - this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE, new mxMouseEvent(evt)); - }), - mxUtils.bind(this, (evt)=> - { - this.graph.fireMouseEvent(mxEvent.MOUSE_UP, new mxMouseEvent(evt)); - }) - ); - } } this.redrawBackgroundImage(this.backgroundImage, bg); diff --git a/src/js/view/mxOutline.js b/src/js/view/mxOutline.js index f67be6bf9..6d0e962df 100644 --- a/src/js/view/mxOutline.js +++ b/src/js/view/mxOutline.js @@ -160,16 +160,6 @@ minScale = 0.0001; */ suspended = false; -/** - * Variable: forceVmlHandles - * - * Specifies if VML should be used to render the handles in this control. This - * is true for IE8 standards mode and false for all other browsers and modes. - * This is a workaround for rendering issues of HTML elements over elements - * with filters in IE 8 standards mode. - */ -forceVmlHandles = document.documentMode == 8; - /** * Function: createGraph * diff --git a/src/js/view/mxPrintPreview.js b/src/js/view/mxPrintPreview.js index 6853053b0..9eec6f339 100644 --- a/src/js/view/mxPrintPreview.js +++ b/src/js/view/mxPrintPreview.js @@ -352,21 +352,6 @@ getWindow = ()=> getDoctype = ()=> { var dt = ''; - - if (document.documentMode == 5) - { - dt = ''; - } - else if (document.documentMode == 8) - { - dt = ''; - } - else if (document.documentMode > 8) - { - // Comment needed to make standards doctype apply in IE - dt = ''; - } - return dt; }; @@ -533,7 +518,7 @@ open = (css, targetWindow, forcePageBreaks, keepOpen)=> // to create the complete page and then copy it over to the // new window.document. This can be fixed later by using the // ownerDocument of the container in mxShape and mxGraphView. - if (isNewWindow && (document.documentMode >= 11 || mxClient.IS_EDGE)) + if (isNewWindow && mxClient.IS_EDGE) { // For some obscure reason, removing the DIV from the // parent before fetching its outerHTML has missing @@ -542,7 +527,7 @@ open = (css, targetWindow, forcePageBreaks, keepOpen)=> doc.writeln(div.outerHTML); div.parentNode.removeChild(div); } - else if (document.documentMode >= 11 || mxClient.IS_EDGE) + else if (mxClient.IS_EDGE) { var clone = doc.createElement('div'); clone.innerHTML = div.outerHTML; @@ -825,19 +810,6 @@ renderPage = (w, h, dx, dy, content, pageNumber)=> viewport.style.marginLeft = dx + 'px'; viewport.style.marginTop = dy + 'px'; - // FIXME: IE8 standards output problems - if (doc.documentMode == 8) - { - innerDiv.style.position = 'absolute'; - viewport.style.position = 'absolute'; - } - - if (doc.documentMode == 10) - { - viewport.style.width = '100%'; - viewport.style.height = '100%'; - } - innerDiv.appendChild(viewport); div.appendChild(innerDiv); document.body.appendChild(div); @@ -851,12 +823,6 @@ renderPage = (w, h, dx, dy, content, pageNumber)=> div.style.overflow = 'hidden'; div.style.pageBreakInside = 'avoid'; - // IE8 uses above branch currently - if (doc.documentMode == 8) - { - div.style.position = 'relative'; - } - var innerDiv = document.createElement('div'); innerDiv.style.width = (w - 2 * this.border) + 'px'; innerDiv.style.height = (h - 2 * this.border) + 'px';