loadAndExecuteScript.js 614 B

123456789101112131415161718192021222324252627
  1. /**
  2. * @private
  3. */
  4. function loadAndExecuteScript(url) {
  5. const script = document.createElement("script");
  6. script.async = true;
  7. script.src = url;
  8. return new Promise((resolve, reject) => {
  9. if (window.crossOriginIsolated) {
  10. script.setAttribute("crossorigin", "anonymous");
  11. }
  12. const head = document.getElementsByTagName("head")[0];
  13. script.onload = function () {
  14. script.onload = undefined;
  15. head.removeChild(script);
  16. resolve();
  17. };
  18. script.onerror = function (e) {
  19. reject(e);
  20. };
  21. head.appendChild(script);
  22. });
  23. }
  24. export default loadAndExecuteScript;