loadScript.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _indexOf = require('lodash/indexOf');
  6. var _indexOf2 = babelHelpers.interopRequireDefault(_indexOf);
  7. var gFileList = []; //list of files already added
  8. /**
  9. * see: http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml
  10. */
  11. var loadjscssfile = function loadjscssfile(filename, filetype) {
  12. return new Promise(function (resolve, reject) {
  13. if ((0, _indexOf2.default)(gFileList, filename) >= 0) {
  14. console.log('loadScript: already load! ' + filename);
  15. resolve(true);
  16. return;
  17. }
  18. var fileref = null;
  19. if (filetype == 'js') {
  20. //if filename is a external JavaScript file
  21. fileref = document.createElement('script');
  22. fileref.setAttribute('type', 'text/javascript');
  23. fileref.setAttribute('src', filename);
  24. } else if (filetype == 'css') {
  25. //if filename is an external CSS file
  26. fileref = document.createElement('link');
  27. fileref.setAttribute('rel', 'stylesheet');
  28. fileref.setAttribute('type', 'text/css');
  29. fileref.setAttribute('href', filename);
  30. } else {
  31. reject(new Error('not support![' + filetype + '] ' + filename));
  32. }
  33. if (typeof fileref == 'undefined' || fileref == null) {
  34. reject(new Error('error! fileref=' + fileref));
  35. }
  36. fileref.onload = function (res) {
  37. console.log('loadScript: onload:', res);
  38. gFileList.push(filename); //List of files added in the form "[filename1],[filename2],etc"
  39. resolve(true);
  40. };
  41. fileref.onerror = function (error) {
  42. console.log('loadScript: onerror:', error);
  43. reject(new Error('load fail! ' + filename));
  44. };
  45. fileref.onabort = function (error) {
  46. console.log('loadScript: onerror:', error);
  47. reject(new Error('load abort! ' + filename));
  48. };
  49. document.getElementsByTagName('head')[0].appendChild(fileref);
  50. });
  51. };
  52. exports.default = loadjscssfile;