include.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. (function () {
  2. var r = new RegExp("(^|(.*?\\/))(include\.js)(\\?|$)"),
  3. s = document.getElementsByTagName('script'), targetScript, relativePath;
  4. for (var i = 0; i < s.length; i++) {
  5. var src = s[i].getAttribute('src');
  6. if (src) {
  7. var m = src.match(r);
  8. if (m) {
  9. relativePath = m[1] ? m[1].replace("js/", "") : "./";
  10. targetScript = s[i];
  11. break;
  12. }
  13. }
  14. }
  15. function inputScript(url) {
  16. var script = '<script type="text/javascript" src="' + relativePath + url + '"><' + '/script>';
  17. document.writeln(script);
  18. }
  19. function inputCSS(url) {
  20. var css = '<link rel="stylesheet" href="' + relativePath + url + '">';
  21. document.writeln(css);
  22. }
  23. function inArray(arr, item) {
  24. for (i in arr) {
  25. if (arr[i] == item) {
  26. return true;
  27. }
  28. }
  29. return false;
  30. }
  31. function supportES6() {
  32. var code = "'use strict'; class Foo {}; class Bar extends Foo {};";
  33. try {
  34. (new Function(code))();
  35. } catch (err) {
  36. return false;
  37. }
  38. if (!Array.from) {
  39. return false;
  40. }
  41. return true;
  42. }
  43. //加载类库资源文件
  44. function load() {
  45. var includes = (targetScript.getAttribute('include') || "").split(",");
  46. var excludes = (targetScript.getAttribute('exclude') || "").split(",");
  47. if (!inArray(excludes, "default")) {
  48. // inputScript("../examples/leaflet/config.js");
  49. // inputScript("../examples/openlayers/config.js");
  50. // inputScript("../examples/classic/config.js");
  51. // inputScript("../examples/mapboxgl/config.js");
  52. // inputScript("../examples/component/config.js");
  53. inputScript("libs/jquery/jquery.min.js");
  54. inputCSS("libs/bootstrap/css/bootstrap.min.css");
  55. inputScript("libs/bootstrap/js/bootstrap.min.js");
  56. inputCSS("libs/admin-lte/css/AdminLTE.min.css");
  57. inputCSS("libs/admin-lte/css/skins/skin-blue.min.css");
  58. inputCSS("libs/font-awesome/css/font-awesome.min.css");
  59. inputScript("libs/art-template/template-web.js");
  60. inputScript("libs/i18next/i18next.min.js");
  61. inputScript("libs/jquery-i18next/jquery-i18next.min.js");
  62. inputScript("js/utils.js");
  63. }
  64. if (inArray(includes, 'polyfill')) {
  65. inputScript("libs/es5-shim/es5-shim.min.js");
  66. inputScript("libs/es5-shim/es5-sham.min.js");
  67. }
  68. if (!inArray(excludes, 'common')) {
  69. inputCSS("css/common.css");
  70. inputCSS("css/header.css");
  71. }
  72. if (inArray(includes, 'g6')) {
  73. inputScript("libs/g6/index.js");
  74. }
  75. if (inArray(includes, 'animate.css')) {
  76. inputCSS("libs/animate/animate.min.css");
  77. }
  78. if (inArray(includes, 'isIntroduction')) {
  79. inputCSS("css/docs.css");
  80. inputScript("../Build/deps.js");
  81. inputScript("introduction/NodesConversionTool.js");
  82. inputScript("js/docs.js");
  83. inputCSS("libs/highlight/default.css");
  84. inputScript("libs/highlight/highlight.pack.js");
  85. document.writeln(" <script>hljs.initHighlightingOnLoad();</script>");
  86. }
  87. if (inArray(includes, 'isFAQ')) {
  88. inputCSS("css/faq.css");
  89. }
  90. // for leaflet
  91. // if (inArray(includes, 'leaflet')) {
  92. // inputCSS("libs/leaflet/leaflet.css");
  93. // inputScript("libs/leaflet/leaflet.js");
  94. // }
  95. // if (inArray(includes, 'leaflet-1.0.3')) {
  96. // inputCSS("libs/leaflet/1.0.3/leaflet.css");
  97. // inputScript("libs/leaflet/1.0.3/leaflet.js");
  98. // }
  99. // if (inArray(includes, 'leaflet-1.3.1')) {
  100. // inputCSS("libs/leaflet/1.3.1/leaflet.css");
  101. // inputScript("libs/leaflet/1.3.1/leaflet.js");
  102. // }
  103. // if (inArray(includes, 'iclient-leaflet')) {
  104. // if (supportES6()) {
  105. // inputScript("../dist/leaflet/iclient-leaflet-es6.min.js");
  106. // } else {
  107. // inputScript("../dist/leaflet/iclient-leaflet.min.js");
  108. // }
  109. // }
  110. // // iClient classsic
  111. // if (inArray(includes, 'iclient8c')) {
  112. // inputScript("libs/iclient8c/libs/SuperMap.Include.js");
  113. // }
  114. // if (inArray(includes, 'mapv')) {
  115. // inputScript("libs/mapv/mapv.min.js");
  116. // }
  117. // if (inArray(includes, 'iclient-classic')) {
  118. // if (supportES6()) {
  119. // inputScript("../dist/classic/iclient-classic-es6.min.js");
  120. // } else {
  121. // inputScript("../dist/classic/iclient-classic.min.js");
  122. // }
  123. // }
  124. if (inArray(includes, '3dwebgl')) {
  125. }
  126. // for mapboxgl
  127. // if (inArray(includes, 'mapboxgl')) {
  128. // inputCSS('libs/mapbox-gl-js/mapbox-gl.css');
  129. // inputScript("libs/mapbox-gl-js/mapbox-gl.js");
  130. // }
  131. // if (inArray(includes, 'iclient-mapboxgl')) {
  132. // if (supportES6()) {
  133. // inputScript("../dist/mapboxgl/iclient-mapboxgl-es6.min.js");
  134. // } else {
  135. // inputScript("../dist/mapboxgl/iclient-mapboxgl.min.js");
  136. // }
  137. // }
  138. // // for openlayers
  139. // if (inArray(includes, 'openlayers')) {
  140. // inputCSS("libs/openlayers/ol.css");
  141. // inputScript("libs/openlayers/ol.js");
  142. // }
  143. // if (inArray(includes, 'iclient-openlayers')) {
  144. // if (supportES6()) {
  145. // inputScript("../dist/openlayers/iclient-openlayers-es6.min.js");
  146. // } else {
  147. // inputScript("../dist/openlayers/iclient-openlayers.min.js");
  148. // }
  149. // }
  150. if (inArray(includes, 'lazyload')) {
  151. inputScript("libs/lazyload/lazyload.min.js");
  152. }
  153. if (inArray(includes, 'swiper')) {
  154. inputCSS("libs/swiper/swiper.min.css");
  155. inputScript("libs/swiper/swiper.min.js");
  156. }
  157. }
  158. load();
  159. window.isLocal = true;
  160. window.server = document.location.toString().match(/file:\/\//) ? "http://localhost:8090" : document.location.protocol + "//" + document.location.host;
  161. window.version = "10.1.0";
  162. window.preRelease = "alpha";
  163. })();