Javascript实现import动态导入文件方法
来源:互联网 发布:etl数据清洗工具 编辑:程序博客网 时间:2024/05/17 22:08
Javascript实现import动态导入文件方法
分类:
版权声明:本文为博主原创文章,未经博主允许不得转载。
众多编程语言都有类似import、include、using等关键字实现引入其它源码文件的功能,但是Javascript却不没有这样的关键字,但是我们可以自己来实现import方法:
var JCore = {//构造核心对象 version:1.0, $import:function(importFile){ var file = importFile.toString(); var IsRelativePath = (file.indexOf("$")==0 ||file.indexOf("/")==-1);//相对路径(相对于JCore) var path=file; if(IsRelativePath){//计算路径,$开头表示使用当前脚本路径,/开头则是完整路径 if(file.indexOf("$")==0) file = file.substr(1); path = JCore.$dir+file; } var newElement=null,i=0; var ext = path.substr(path.lastIndexOf(".")+1); if(ext.toLowerCase()=="js"){ var scriptTags = document.getElementsByTagName("script"); for(var i=0;ilength;i++) { if(scriptTags[i].src && scriptTags[i].src.indexOf(path)!=-1) return; } newElement=document.createElement("script"); newElement.type="text/javascript"; newElement.src=path; } else if(ext.toLowerCase()=="css"){ var linkTags = document.getElementsByTagName("link"); for(var i=0;ilength;i++) { if(linkTags[i].href && linkTags[i].href.indexOf(path)!=-1) return; } newElement=document.createElement("link"); newElement.type="text/css"; newElement.rel="Stylesheet"; newElement.href=path; } else return; var head=document.getElementsByTagName("head")[0]; head.appendChild(newElement); }, $dir : function(){ var scriptTags = document.getElementsByTagName("script"); for(var i=0;ilength;i++) { if(scriptTags[i].src && scriptTags[i].src.match(/JCore/.js$/)) { path = scriptTags[i].src.replace(/JCore/.js$/,""); return path; } } return ""; }()}
其中$dir表示当前脚本文件的路径,通过当前文件的文件名查找路径;$import方法可以导入js脚本或css样式表文件,如果以$开头则使用当前脚本文件的路径导入文件,如果以/开头则表示是完整的脚本路径!
$import("/Script/myfile.js");$import("/Script/mystyle.css");$import("$myfile.js");
为html动态添加script节点元素或style节点元素只是动态导入脚本的一种脚本,除此之外,还可以通过Ajax异步请求js脚本文件,然后通过eval方法把获取的脚本文本转换为脚本代码实现动态导入功能!但是css样式表文件无法通过这种方式导入!不过CSS样式表本身即有@import关键字,可以实现文件引用包含!
0 0
- Javascript实现import动态导入文件方法
- Javascript实现import动态导入文件方法
- Javascript实现import动态导入文件方法
- 随笔-Javascript实现import动态导入文件方法及其切换
- CSS文件的导入方法即“@import url”
- jquery动态加载javascript文件的方法
- javascript弹出窗口实现动态文件上传
- phpmyadmin导入import文件限制的解决方法
- phpmyadmin导入(import)文件限制的解决办法
- phpmyadmin导入(import)文件限制的解决办法
- Java Import File (导入Excel文件)
- Sass文件的导入import和Partials
- python使用import导入文件夹中的文件
- Python 使用import导入模块或者方法
- Netbeans下的2种导入javascript文件的方法
- Javascript中实现JS文件的导入+命名前缀
- qml 导入javascript Invalid import qualifier ID 问题
- Javascript 文件操作 实现方法小结
- java.lang.NullPointerException: Expected timestamp in the Flume event headers, but it was null
- BZOJ[1465/1045]: 糖果传递
- Linux入门笔记——echo
- 情人节的自娱自乐——情书事件
- android RecyclerView的复杂布局
- Javascript实现import动态导入文件方法
- Oracle 11gR2 RAC 使用scan IP无法连接数据库(ORA-12545)
- ipython安装
- 指针的数组 烧脑
- 电视家没有cctv5的解决方法,一招轻松看奥运会!
- 分享 西安的炒房内幕
- 树莓派vim插件安装汇总
- 请教一下各位大侠,关于sql语句中使用case替换where条件的查询出现空行的原因
- 串口转socket通信