【发布时间】:2019-05-23 18:35:20
【问题描述】:
我知道使用 php/jquery 可以做到这一点,但我还没有找到一个有效的 vanilla javascript 解决方案。我在 vanilla javascript 中这样做主要是作为一种学习经验,所以请不要使用 php/jquery。
这就是我所拥有的,基于this 的答案。
//load_essentials.js
document.getElementById("myNav").innerHTML =
"<ul id='navLinks'>"
+ "<li><a href='index.html'>Home</a></li>"
+ "<li><a href='about.html'>About</a>"
+ "<li><a href='donate.html'>Donate</a></li>"
+ "</ul>";
<!--index.html-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title> NavBar </title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body>
<nav id="myNav"></nav>
This is the content in the home page.
<script src="load_essentials.js"></script>
</body>
</html>
这是 about.html:
<!--about.html-->
<nav id="myNav"></nav>
<script src="load_essentials.js"></script>
Hello World, this is my about me page!
问题是当有人单击 index.html 中导航栏中的 About 链接时,about.html 中的导航栏没有引导样式(蓝色文本),它只是一个纯黑色的无序列表。我可以将 index.html 中的 <head></head> 复制并粘贴到每个页面上,但是在 vanilla javascript 中必须有更好的方法来做到这一点?
【问题讨论】:
-
最好不要使用 javascript 在每个页面上动态加载您需要的外部样式表。您应该在每一页的
head中包含link。像Pug 这样的模板引擎可以轻松跨多个页面进行管理。 -
您的 javascript (load_essentials) 似乎可以工作 - 它已成功将导航添加到文档中。什么不起作用似乎是样式表。您能否具体说明您希望看到的样式? @sean 我没有看到他们在哪里使用 javascript 来加载外部样式表。
-
@AlexMA 也许我误读了这个问题。此外,您需要
nav元素及其子元素上的引导类,以便应用引导样式。 -
问题是当有人点击 index.html 导航栏中的 About 链接时,about.html 中的导航栏没有引导样式(蓝色文本),它只是一个纯黑色的无序列表。跨度>
标签: javascript jquery html css