为什么代码会无限次添加脚本到head,直到页面执行停止?我需要一次
============= 1小时后==================== 为什么当我把它放在js之前,loadScript('/js/script.js');但都一样是为什么是这样吗?
js/script.js 文件
function loadScript(src){
let script =document.createElement('script');
script.src=src;
document.head.append(script);
}
loadScript('js/script.js');
索引.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Git test</title>
</head>
<body>
<p>Hello world!</p>
<p>Second message</p>
<script defer src="js/script.js"></script>
</body>
</html>

问题是该函数
loadScript及其调用位于正在加载的文件中。正因为如此,当文件被加载时,该函数被执行并再次开始加载文件,其中加载文件的函数是无穷无尽的。
要解决它,
loadScript从加载的文件中删除方法调用就足够了。js/script.js 文件
索引.html
您有一个文件,您在其中创建并包含相同的文件,因此,该操作属于递归。
并且当您在包含文件的开头添加带有斜杠的路径时,不会加载该文件(404)并且没有递归。
¯\_(ツ)_/¯