背景:由于宿主环境是比较低版本的火狐浏览器,需要兼容。。
代码如下:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"/><link rel="icon" type="image/svg+xml" href="/vite.svg"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="Cache-Control" content="no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0"/><title>xxxxx管控系统</title>
</head>
<body style="margin: 0;padding: 0">
<div id="main" style="height: 100%; width: 100%;background: #040c20;"></div>
<script type="module" src="./main.ts"></script>
</body>
<script>(function (win) {// 获取页面所有的 <script > 标签对象let scripts = document.getElementsByTagName('script')// 遍历标签for(let i = 0; i < scripts.length; i++) {// 提取单个<script > 标签对象let script = scripts[i]// 获取标签中的 srclet url = script.getAttribute("src")// 获取标签中的 typelet type = script.getAttribute("type")//获取是否有crossorigin属性let isCross = script.hasAttribute('crossorigin')// 获取标签中的js代码let scriptText = script.innerHTML// 如果有引用地址或者 type 属性 为 "module" 则代表该标签需要更改if (url && (type === "module" || isCross)) {if(url==='./main.ts' || url === '/@vite/client') //如果是开发环境不处理return// 创建一个新的标签对象let tag=document.createElement('script');// 设置src的引入tag.setAttribute('src',url);// 设置js代码tag.innerHTML = scriptText// 删除原先的标签script.remove()// 将标签添加到代码中document.getElementsByTagName('head')[0].appendChild(tag)}}})(window)
</script>
</html>