Browse Source

Add support for IE and Edge. Fixes #214

pull/663/head
Artur Arseniev 8 years ago
parent
commit
76019a438d
  1. 3
      src/grapesjs/index.js
  2. 2
      src/utils/Sorter.js
  3. 38
      src/utils/polyfills.js

3
src/grapesjs/index.js

@ -1,5 +1,8 @@
import $ from 'cash-dom';
import { defaults } from 'underscore';
import polyfills from 'utils/polyfills';
polyfills();
module.exports = (() => {
const defaultConfig = require('./config/config');

2
src/utils/Sorter.js

@ -925,7 +925,7 @@ module.exports = Backbone.View.extend({
var dragHelper = this.dragHelper;
if(dragHelper) {
dragHelper.remove();
dragHelper.parentNode.removeChild(dragHelper);
this.dragHelper = null;
}

38
src/utils/polyfills.js

@ -0,0 +1,38 @@
/**
* File made for IE/Edge support
* https://github.com/artf/grapesjs/issues/214
*/
export default () => {
/**
* Check if IE/Edge
* @return {Boolean}
*/
const isIE = () => {
let match;
const agent = window.navigator.userAgent;
const rules = [
[ 'edge', /Edge\/([0-9\._]+)/ ],
[ 'ie', /MSIE\s(7\.0)/ ],
[ 'ie', /MSIE\s([0-9\.]+);.*Trident\/[4-7].0/ ],
[ 'ie', /Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/ ],
];
for (let i = 0; i < rules.length; i++) {
const rule = rules[i];
match = rule[1].exec(agent);
if (match) break;
}
return !!match;
}
if (isIE()) {
const originalCreateHTMLDocument = DOMImplementation.prototype.createHTMLDocument
DOMImplementation.prototype.createHTMLDocument = (title) => {
if (!title) title = '';
return originalCreateHTMLDocument.apply(document.implementation, [title]);
}
}
}
Loading…
Cancel
Save