12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- //入口js
- 'use strict';
- //版本控制
- var versions = 'v_1.0';
- //不缓存
- versions = 'v_' + new Date().getTime();
- //加载完成全局数组
- var LOAD = [];
- //获取当前目录级别
- var script = document.querySelector('script[door]');
- var dire = ''; //目录
- var _dire = ''; //相对目录
- if (script) {
- var jHtml = script.outerHTML,
- srcS = 'src="',
- strE = '"';
- srcS = jHtml.indexOf(srcS) + srcS.length; //路径开始位置
- strE = jHtml.indexOf(strE, srcS); //路径结束位置
- jHtml = jHtml.substring(srcS, strE); //完整路径带文件名
- strE = jHtml.lastIndexOf('/'); //查找倒数第一斜杠位置
- dire = jHtml.substring(0, strE + 1); //完整相对路径
- /**
- * (项目跟目录) 预留本地加载文件名,实现预先本地配置 貌似无法完成
- * 通过配置项目名(项目目录)来获取项目路劲进行全项目页面相对路径配置
- * 完成通过全域名引用admin框架
- * 目前未实现
- */
- if (dire.lastIndexOf("../") > -1) {
- _dire = dire.substr(0, dire.lastIndexOf("../") + 3);
- }
- //载入ajax拦截器,引入layui,载入配置文件
- require(['js/ajaxhook.min.js', "layui/layui.js", 'js/config.js']);
- } else {
- console.error("入口js标签没有关键属性 door");
- }
- //动态加载js函数 连接,成功或失败回调
- function require(url, type) {
- if (!Array.isArray(url)) {
- url = [url];
- }
- for (var i = 0; i < url.length; i++) {
- ___load('script', url[i], type);
- }
- }
- //动态载入CSS
- function link(url, type) {
- if (!Array.isArray(url)) {
- url = [url];
- }
- for (var i = 0; i < url.length; i++) {
- ___load('link', url[i], type);
- }
- }
- //加载公共函数
- function ___load(type, url, _type) {
- //拼接地址
- var href = dire + url;
- //_type为true 不进行url转换
- _type && (href = url);
- //全路劲直接访问
- (url.substr(0, 2) == '//' || /^http(s*):\/\//.test(url)) && (href = url);
- //添加版本号
- href = href + '?v=' + versions;
- //js类型
- if (type == 'script') {
- document.write("<script type='text/javascript' src='" + href + "'></script>");
- } else { //样式类型
- document.write("<link rel='stylesheet' type='text/css' media='all' href='" + href + "'>");
- }
- }
- //加载完毕执行
- function ready(callback) {
- LOAD.push(callback);
- window.onload = function() {
- for (var i = 0; i < LOAD.length; i++) {
- LOAD[i] && (typeof LOAD[i] == 'function') && LOAD[i]();
- }
- }
- }
|