| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | 
							- let callbacks = []
 
- function loadedTinymce() {
 
-   // to fixed https://github.com/PanJiaChen/vue-element-admin/issues/2144
 
-   // check is successfully downloaded script
 
-   return window.tinymce
 
- }
 
- const dynamicLoadScript = (src, callback) => {
 
-   const existingScript = document.getElementById(src)
 
-   const cb = callback || function() {}
 
-   if (!existingScript) {
 
-     const script = document.createElement('script')
 
-     script.src = src // src url for the third-party library being loaded.
 
-     script.id = src
 
-     document.body.appendChild(script)
 
-     callbacks.push(cb)
 
-     const onEnd = 'onload' in script ? stdOnEnd : ieOnEnd
 
-     onEnd(script)
 
-   }
 
-   if (existingScript && cb) {
 
-     if (loadedTinymce()) {
 
-       cb(null, existingScript)
 
-     } else {
 
-       callbacks.push(cb)
 
-     }
 
-   }
 
-   function stdOnEnd(script) {
 
-     script.onload = function() {
 
-       // this.onload = null here is necessary
 
-       // because even IE9 works not like others
 
-       this.onerror = this.onload = null
 
-       for (const cb of callbacks) {
 
-         cb(null, script)
 
-       }
 
-       callbacks = null
 
-     }
 
-     script.onerror = function() {
 
-       this.onerror = this.onload = null
 
-       cb(new Error('Failed to load ' + src), script)
 
-     }
 
-   }
 
-   function ieOnEnd(script) {
 
-     script.onreadystatechange = function() {
 
-       if (this.readyState !== 'complete' && this.readyState !== 'loaded') return
 
-       this.onreadystatechange = null
 
-       for (const cb of callbacks) {
 
-         cb(null, script) // there is no way to catch loading errors in IE8
 
-       }
 
-       callbacks = null
 
-     }
 
-   }
 
- }
 
- export default dynamicLoadScript
 
 
  |