index.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. //入口js
  2. 'use strict';
  3. //版本控制
  4. var versions = 'v_1.0';
  5. //不缓存
  6. versions = 'v_' + new Date().getTime();
  7. //加载完成全局数组
  8. var LOAD = [];
  9. //获取当前目录级别
  10. var script = document.querySelector('script[door]');
  11. var dire = ''; //目录
  12. var _dire = ''; //相对目录
  13. if (script) {
  14. var jHtml = script.outerHTML,
  15. srcS = 'src="',
  16. strE = '"';
  17. srcS = jHtml.indexOf(srcS) + srcS.length; //路径开始位置
  18. strE = jHtml.indexOf(strE, srcS); //路径结束位置
  19. jHtml = jHtml.substring(srcS, strE); //完整路径带文件名
  20. strE = jHtml.lastIndexOf('/'); //查找倒数第一斜杠位置
  21. dire = jHtml.substring(0, strE + 1); //完整相对路径
  22. /**
  23. * (项目跟目录) 预留本地加载文件名,实现预先本地配置 貌似无法完成
  24. * 通过配置项目名(项目目录)来获取项目路劲进行全项目页面相对路径配置
  25. * 完成通过全域名引用admin框架
  26. * 目前未实现
  27. */
  28. if (dire.lastIndexOf("../") > -1) {
  29. _dire = dire.substr(0, dire.lastIndexOf("../") + 3);
  30. }
  31. //载入ajax拦截器,引入layui,载入配置文件
  32. require(['js/ajaxhook.min.js', "layui/layui.js", 'js/config.js']);
  33. } else {
  34. console.error("入口js标签没有关键属性 door");
  35. }
  36. //动态加载js函数 连接,成功或失败回调
  37. function require(url, type) {
  38. if (!Array.isArray(url)) {
  39. url = [url];
  40. }
  41. for (var i = 0; i < url.length; i++) {
  42. ___load('script', url[i], type);
  43. }
  44. }
  45. //动态载入CSS
  46. function link(url, type) {
  47. if (!Array.isArray(url)) {
  48. url = [url];
  49. }
  50. for (var i = 0; i < url.length; i++) {
  51. ___load('link', url[i], type);
  52. }
  53. }
  54. //加载公共函数
  55. function ___load(type, url, _type) {
  56. //拼接地址
  57. var href = dire + url;
  58. //_type为true 不进行url转换
  59. _type && (href = url);
  60. //全路劲直接访问
  61. (url.substr(0, 2) == '//' || /^http(s*):\/\//.test(url)) && (href = url);
  62. //添加版本号
  63. href = href + '?v=' + versions;
  64. //js类型
  65. if (type == 'script') {
  66. document.write("<script type='text/javascript' src='" + href + "'></script>");
  67. } else { //样式类型
  68. document.write("<link rel='stylesheet' type='text/css' media='all' href='" + href + "'>");
  69. }
  70. }
  71. //加载完毕执行
  72. function ready(callback) {
  73. LOAD.push(callback);
  74. window.onload = function() {
  75. for (var i = 0; i < LOAD.length; i++) {
  76. LOAD[i] && (typeof LOAD[i] == 'function') && LOAD[i]();
  77. }
  78. }
  79. }