文章目录

  • 导读
  • 通过CDN网站获取js的url
  • url、script.src
  • XHR加载、script.text
  • 参考资料

导读

  • 日期:2022-1-18

分析网页时,经常遇到一些库未加载的情况,比如想使用axios库,该网站本身未加载,这时候就需要通过js加载。

通过CDN网站获取js的url

这里以axios为例。

  • https://www.bootcdn.cn/

    • https://www.bootcdn.cn/axios
    • https://cdn.jsdelivr.net/npm/axios@0.25.0/dist/axios.min.js
  • https://www.jsdelivr.com/
    • https://www.jsdelivr.com/?query=axios
    • https://cdn.jsdelivr.net/npm/axios@0.25.0/dist/axios.min.js

url、script.src

function loadJS( url, callback ){var script = document.createElement('script')var fn = callback || function(){};script.type = 'text/javascript';//IEif(script.readyState){script.onreadystatechange = function(){if( script.readyState == 'loaded' || script.readyState == 'complete' ){script.onreadystatechange = null;fn();}};}else{//其他浏览器script.onload = function(){fn();};}script.src = url;document.getElementsByTagName('head')[0].appendChild(script);
}// 测试代码
console.log(typeof axios)
loadJS('https://cdn.bootcdn.net/ajax/libs/axios/0.24.0/axios.js', ()=>console.log(typeof axios))

XHR加载、script.text

function loadJS( url, callback ){var fn = callback || function(){};var xhr = new XMLHttpRequest;xhr.open('get',url,true);xhr.onreadystatechange = function(){if( xhr.readyState == 4 ){if( xhr.status >=200 && xhr.status < 300 || xhr.status == 304 ){var script = document.createElement('script');script.type = 'text/javascript';script.text = xhr.responseText;//IEif(script.readyState){script.onreadystatechange = function(){if( script.readyState == 'loaded' || script.readyState == 'complete' ){script.onreadystatechange = null;fn();}};}else{//其他浏览器// axios的onload不会触发???script.onload = function(){fn();};script.onerror = function(e){console.log('script.onerror', e)};}document.body.appendChild(script);}}};xhr.send(null);
}// 测试代码
console.log(typeof axios)
loadJS('https://cdn.bootcdn.net/ajax/libs/axios/0.24.0/axios.js', ()=>console.log(typeof axios))

参考资料

  • js怎么动态加载js文件 https://www.cnblogs.com/telwanggs/p/11045773.html
  • https://blog.csdn.net/Tmraz/article/details/114821997
  • qq群:夜猫逐梦技术交流裙/953949723

JS练习 -- 动态加载JS相关推荐

  1. html动态加载js方法,原生JS实现动态加载js文件并在加载成功后执行回调函数的方法...

    本文实例讲述了原生JS实现动态加载js文件并在加载成功后执行回调函数的方法.分享给大家供大家参考,具体如下: 有的时候需要动态加载一个javascript文件,并且在加载成功后执行回调函数(例如文件中 ...

  2. js插件动态加载js、css解决方案

    最近因为工作需要做了一个js自动导入的插件,一开始很天真的以为动态创建个script添加到head中就ok了,试了之后才发现了问题,就是如果同时引入了多个js文件,而且后一个文件中用到了前一个文件中的 ...

  3. js怎么动态加载js文件(JavaScript性能优化篇)

    下面介绍一种JS代码优化的一个小技巧,通过动态加载引入js外部文件来提高网页加载速度 [基本优化] 将所有需要的<script>标签都放在</body>之前,确保脚本执行之前完 ...

  4. js jq 动态加载js文件

    1.jquery方法 $.getScript("./test.js"); //加载js文件 $.getScript("./test.js",function() ...

  5. 原生js实现动态加载js文件?

    一.写在前面 今天拼多多笔试题,题目如下: 实现一个动态加载函数function loadScript(src, attrs)返回Promise, 其中 src是脚本地址,attrs是脚本属性. 二. ...

  6. jquery 动态加载js插件

    作用描述: 在H5页面直接加载插件,有时可能在js使用到时没有记载完成,如果不进行二次加载及判断,程序可能就此卡壳,无法继续运行.通过jquery动态多次判断加载,保证插件的完整加载及使用. 解决方案 ...

  7. ExtJS4.x动态加载js文件

    动态加载js文件是ext4.x的一个新特性,可以有效的减少浏览器的压力,提高渲染速度.如动态加载自定义组件 1.在js/extjs/ux目录下,建立自定义组件的js文件. 2.编写MyWindow.j ...

  8. js动态载入css文件,原生JS动态加载JS、CSS文件及代码脚本(示例代码)

    var DynamciLoadUtil = { // 动态加载外部js文件,并执行回调 loadJS: function(url, callback){ var script = document.c ...

  9. 动态加载JS脚本的4种方法

    动态加载JS脚本的4种方法 2006-12-04 15:33 要实现动态加载JS脚本有4种方法: 1.直接document.write <script language="javasc ...

最新文章

  1. asyncio之Coroutines,Tasks and Future
  2. 微软.net一些类的源码
  3. webService 使用CXF 实现简单的helloworld
  4. Mac中安装Node和版本控制工具nvm遇到的坑
  5. python设计模式4-建造者模式
  6. 懒加载、瀑布流和LightBox实现图片搜索效果
  7. Dart入门—控制流程与其他
  8. 实时传输文件到服务器,如何将数据实时上传到云服务器
  9. 【MVC5】对MySql数据库使用EntityFramework
  10. 【转载】TableLayout表格布局详解
  11. aws lam nodejs mysql_NodeJs IF Statement in AWS Lambda using MySQL database
  12. NOIP模拟赛(洛谷11月月赛)
  13. python实现连接池技术
  14. MySQL 性能优化一
  15. 微型计算机控制是微机原理吗,微型计算机控制技术学习心得
  16. 知识兔课程揭秘跨境电商的大骗局,你有没有被坑过!
  17. mongodb mapreduce分析
  18. ESP32 系统篇: 优化系统启动时间
  19. c语言千位分隔符代码if函数,JavaScript实现千位分隔符
  20. (3)odroid xu4/3 SD卡的ubuntu系统烧入

热门文章

  1. idea自动补全功能
  2. 移动CRM软件是销售人员必备办公工具
  3. 【OpenCV】车牌自动识别算法的设计与实现
  4. 小数加分数怎样计算讲解_数的知识_小数、分数讲解
  5. Python发送邮件提醒
  6. 考研院校计算机排名,2016年计算机考研院校排名
  7. 9s12zvm 初学者
  8. Java 创建文件软链接
  9. c语言开发ssl,SSL编程简介
  10. HTML入门教程之表格标志