当前位置:网站首页>如何动态添加script依赖的脚本
如何动态添加script依赖的脚本
2022-08-04 03:47:00 【行致】
如何动态添加script依赖的脚本
使用的背景
在我们平常开发中,会在HTML文件中会放置一些所依赖的脚本,但在有些情况下,区分不同的环境下,而加载不同的脚本,或者相同的脚本而不同的版本,这就需要动态添加了
具体放置方法
可以动态的创建script元素,然后脚本链接赋值给src,但要注意一点,在加载完这个脚本之后才能进行下一步,否则放置的脚本可能没有生效或者是已经执行完而所依赖的脚本还在加载中。这是很重要的一点。
我所使用的框架是vit+react+ts进行开发的,因此我动态添加的script元素是放置在app.tsx中。具体代码如下:例 动态加载不同版本的微信sdk版本
import React from 'react';
import ReactDOM from 'react-dom';
import {
BrowserRouter } from 'react-router-dom';
import {
getEnv } from '@/utils';//区分微信环境和企业微信环境
import App from './app';
// 根据环境插入不同js-sdk,按目前文档企业微信插入1.2,微信插入1.6
const script = document.createElement('script');
// script.crossOrigin = 'anonymous';
if (getEnv() === 'qywx') {
script.src = 'https://res.wx.qq.com/open/js/jweixin-1.2.0.js';
script.onerror = () => {
window.$log('qy-wx-sdk:loadError');
};
} else {
script.src = 'https://res.wx.qq.com/open/js/jweixin-1.6.0.js';
script.onerror = () => {
window.$log('wx-sdk:loadError');
};
}
script.onload = rcInit;//加载完script后,渲染页面dom
document.head.appendChild(script);
function rcInit() {
ReactDOM.render(
<BrowserRouter basename="/admin-app">
<App />
</BrowserRouter>,
document.getElementById('root')
);
}
边栏推荐
- MySQL 查询练习(1)
- 2 Gigabit Optical + 6 Gigabit Electric Rail Type Managed Industrial Ethernet Switch Supports X-Ring Redundant Ring One-key Ring Switch
- Gigabit 2 X light 8 electricity management industrial Ethernet switches WEB management - a key Ring Ring net switch
- PL/SQL Some Advanced Fundamental
- 【翻译】Terraform和Kubernetes的交集
- Oracle与Postgresql在PLSQL内事务回滚的重大差异
- 软件测试如何系统规划学习呢?
- JVM的内存模型简介
- 基本表单验证流程
- 怎样提高网络数据安全性
猜你喜欢

STM8S project creation (STVD creation) --- use COSMIC to create a C language project

怎样提高网络数据安全性

42. 接雨水

KingbaseES数据库启动失败,报“内存段超过可用内存”

C language -- ring buffer

千兆2光8电管理型工业以太网交换机WEB管理X-Ring一键环网交换机

【医保科普】维护医保基金安全,我们可以这样做

sql语句查询String类型字段小于10的怎么查

Learn iframes and use them to solve cross-domain problems

【MD5】采用MD5+盐的加密方式完成注册用户和登录账号
随机推荐
自定义通用分页标签01
目标检测-中篇
Hey, I had another fight with HR in the small group!
FFmpeg —— 通过修改yuv,将视频转为黑白并输出(附源码)
机器学习模型的“可解释性”
SQL query String field less than 10 how to check
typescript type 和 interface 的区别
STM8S105k4t6c---------------Light up LED
FPGA解析B码----连载3
什么是数字孪生智慧城市应用场景
帮助企业实现数字化转型成功的八项指导原则
MySQL Query Exercise (1)
复现20字符短域名绕过
Innovation and Integration | Huaqiu Empowerment Helps OpenHarmony Ecological Hardware Development and Landing
6口全千兆二层网管型工业以太网交换机千兆2光4电光纤自愈ERPS环网交换机
This Thursday evening at 19:00, the fourth live broadcast of knowledge empowerment丨The realization of equipment control of OpenHarmony smart home project
Polygon zkEVM网络节点
PL/SQL Some Advanced Fundamental
如果禁用了安全启动,GNOME 就会发出警告
出现504怎么办?由于服务器更新导致的博客报504错误[详细记录]