¿Cuándo está disponible una biblioteca de JavaScript cargada dinámicamente?

Escribí la biblioteca de JavaScript para usarFileSaver.js y sus bibliotecas asociadas. Sin embargo, no quiero cargar siempre FileSaver.js cuando alguien quiera usar mi biblioteca. Y no quiero forzarlos a cargar todas las bibliotecas de JavaScript relacionadas con FileSaverscript etiquetas propias (o incluso cargar una de las mías que haría eso).

En cambio, lo que preferiría es algo como esto. Cuando me llamancreateImage función, primero hace lo siguiente:

function createImage(image, name) {
  if (typeof(saveAs) !== 'function') {
    var element = document.createElement('script');
    element.async = false;
    element.src = 'FileSaver.js';
    element.type = 'text/javascript';
    (document.getElementsByTagName('head')[0]||document.body).appendChild(element);
  }
  // now do the saveImage code
}

El problema es, después de lo anterior, elsaveAs La función aún no está definida. Es solamentedespués micreateImage completa es elsaveAs Función finalmente definida.

Respuestas a la pregunta(5)

Su respuesta a la pregunta