summaryrefslogtreecommitdiff
path: root/src/js/includeheader.js
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2023-10-02 14:10:56 +0800
committerlittleblack111 <littleblack11111@gmail.com>2023-10-02 14:10:56 +0800
commitaa91acb5a17c67ed929a5dd5440195736745450d (patch)
tree72c7323f3025513579d5dc05f0dfee29f3a3462e /src/js/includeheader.js
parent12cb115c9d74698129607a5907471a907e10d8aa (diff)
make navBar(header) presist active depending on which page user's on
Diffstat (limited to 'src/js/includeheader.js')
-rw-r--r--src/js/includeheader.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/js/includeheader.js b/src/js/includeheader.js
new file mode 100644
index 00000000..5ac7d067
--- /dev/null
+++ b/src/js/includeheader.js
@@ -0,0 +1,47 @@
+function includeHeader() {
+ var z, i, elmnt, file, xhttp;
+ // loop through a collection of all HTML elements
+ z = document.getElementsByTagName("*");
+ for (i = 0; i < z.length; i++) {
+ elmnt = z[i];
+ // search for elements with a certain attribute
+ file = elmnt.getAttribute("include-header");
+ if (file) {
+ // make an HTTP request using the attribute value as the file name
+ xhttp = new XMLHttpRequest();
+ xhttp.onreadystatechange = function() {
+ if (this.readyState == 4) {
+ if (this.status == 200) {
+ elmnt.innerHTML = this.responseText;
+ setActiveLink(); // Set the active link after including the HTML
+ }
+ if (this.status == 404) {
+ elmnt.innerHTML = "Page not found.";
+ }
+ // remove the attribute and call this function once more
+ elmnt.removeAttribute("include-header");
+ includeHeader();
+ }
+ };
+ xhttp.open("GET", file, true);
+ xhttp.send();
+ // exit the function
+ return;
+ }
+ }
+}
+
+// Set the active link based on the current page
+function setActiveLink() {
+ var currentPath = window.location.pathname;
+ var navLinks = document.getElementsByClassName("navBar")[0].getElementsByTagName("a");
+ for (var i = 0; i < navLinks.length; i++) {
+ var link = navLinks[i];
+ var href = link.getAttribute("href");
+ if (href === currentPath) {
+ link.classList.add("active");
+ } else {
+ link.classList.remove("active");
+ }
+ }
+}