remove styling on destroy
This commit is contained in:
@@ -16,6 +16,7 @@ import getAllMethodNames from './utils/getAllMethodNames'
|
||||
import nodeIsActive from './utils/nodeIsActive'
|
||||
import markIsActive from './utils/markIsActive'
|
||||
import getMarkAttrs from './utils/getMarkAttrs'
|
||||
import removeElement from './utils/removeElement'
|
||||
import getSchemaTypeByName from './utils/getSchemaTypeByName'
|
||||
import ExtensionManager from './ExtensionManager'
|
||||
import Extension from './Extension'
|
||||
@@ -44,6 +45,7 @@ export class Editor extends EventEmitter {
|
||||
extensions: [],
|
||||
}
|
||||
commands: { [key: string]: any } = {}
|
||||
css!: HTMLStyleElement
|
||||
|
||||
private lastCommand = Promise.resolve()
|
||||
|
||||
@@ -62,7 +64,7 @@ export class Editor extends EventEmitter {
|
||||
this.registerCommand('clearContent', require('./commands/clearContent').default)
|
||||
|
||||
if (this.options.injectCSS) {
|
||||
injectCSS(require('./style.css'))
|
||||
this.css = injectCSS(require('./style.css'))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -232,6 +234,7 @@ export class Editor extends EventEmitter {
|
||||
|
||||
this.view.destroy()
|
||||
this.removeAllListeners()
|
||||
removeElement(this.css)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
export default function injectCSS(css: string) {
|
||||
if (process.env.NODE_ENV !== 'test') {
|
||||
const style = document.createElement('style')
|
||||
style.type = 'text/css'
|
||||
style.textContent = css
|
||||
const { head } = document
|
||||
const { firstChild } = head
|
||||
const style = document.createElement('style')
|
||||
style.type = 'text/css'
|
||||
style.textContent = css
|
||||
const { head } = document
|
||||
const { firstChild } = head
|
||||
|
||||
if (firstChild) {
|
||||
head.insertBefore(style, firstChild)
|
||||
} else {
|
||||
head.appendChild(style)
|
||||
}
|
||||
if (firstChild) {
|
||||
return head.insertBefore(style, firstChild)
|
||||
} else {
|
||||
return head.appendChild(style)
|
||||
}
|
||||
}
|
||||
|
||||
5
packages/core/src/utils/removeElement.ts
Normal file
5
packages/core/src/utils/removeElement.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export default function removeElement(element: HTMLElement) {
|
||||
if (element && element.parentNode) {
|
||||
element.parentNode.removeChild(element)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user