【发布时间】:2021-01-11 13:57:37
【问题描述】:
这个问题不是重复的
也不是这个
我已经完成了它们,它们与我想要做的有点相似,但并不完全相同。以下是在上述问题中,用户只想根据条件加载脚本文件一次。但就我而言,我想根据点击事件加载不同的 js 文件。
所以在我的例子中,我有一个 HTML 文档:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Experiment</title>
<link href="s.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="navigation">
<nav>
<ul>
<li id="home_btn"> Home</li>
<li id="about_btn"> About </li>
</ul>
</nav>
</div>
<canvas id="myCanvas">
</canvas>
<div class="notePane">
<p> This is just a bunch of text not explanation</p>
</div>
</body>
<script src="./exp.js" type="text/javascript"></script>
</html>
这个 h.html 文件链接到一个 exp.js 文件。现在在 exp.js 文件中:
var h_btn = document.getElementById("home_btn");
var a_btn = document.getElementById("about_btn");
var head = document.getElementsByTagName("head")[0];
var js = document.createElement("script");
js.type="module";
h_btn.addEventListener("click", showHome );
a_btn.addEventListener("click", showAbout);
function showHome() {
js.src="./j1.js";
head.appendChild(js);
}
function showAbout() {
js.src="./j2.js";
head.appendChild(js);
}
所以当我点击网页上的 h_btn 时一切正常。它加载 j1.js。但是当我点击网页上的 a_btn 时,我希望看到 j2.js 链接,但我没有看到它。我必须刷新页面,然后单击 a_btn 以查看链接的 j2.js。如何链接 j1.js 和 j2.js,这样我就不必一次又一次地刷新页面来加载正确的脚本。
【问题讨论】:
-
如果你克隆脚本元素而不是使用它,它有什么不同吗?重复使用相同的元素不是一个好主意。当您重用它时,它不会创建另一个元素,而是将它从文档中的一个位置移动到另一个位置。
标签: javascript