Quando uma biblioteca JavaScript carregada dinamicamente se torna disponível?
Eu escrevi biblioteca JavaScript para usarFileSaver.js e suas bibliotecas associadas. No entanto, eu não quero sempre carregar FileSaver.js sempre que alguém quiser usar minha biblioteca. E eu não quero forçá-los a carregar todas as várias bibliotecas JavaScript relacionadas ao FileSaver comscript
tags-se (ou até mesmo carregar um dos meus que faria isso).
Em vez disso, o que eu prefiro é algo assim. Quando eles chamam meucreateImage
função, primeiro faz o seguinte:
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
}
O problema é, após o acima, osaveAs
função ainda não está definida. É sódepois de minhacreateImage
completa é osaveAs
função finalmente definida.