我对 Web 开发和 javascript 还是很陌生。为了使我的网站更易于维护,我决定使用 Javascript 从文本文件中读取“导航栏”并将其添加到每个页面的顶部。我现在要做的是创建一个允许我指定链接和“链接深度”的函数,以返回指向我的页面的相对链接。这是功能:
function increaseLinkDepth(aLink, aDepth) {
var result = aLink;
for(i = 0;i < aDepth;i++) {
result = "../" + result;
}
return result;
}
现在,我有一点在桌面和移动设备上开发的经验,所以这是一个非常简单的功能。如果我这样调用函数:/increaseLinkDepth("index.html", 1)
,我希望得到以下结果:../index.html
。当我在网站上运行 javascript 时,我确实明白了这一点。现在,当我在以下代码中调用该函数时:
var anchors = document.getElementsByTagName("a");
for(i = 0;i < anchors.length;i++) {
var lAnchor = anchors[i];
var lAnchorLink = lAnchor.getAttribute("href");
if(lAnchorLink.substring(0, 4) != "http") {
var newLink = increaseLinkDepth(lAnchorLink, 1);
//alert(newLink);
lAnchor.setAttribute("href", newLink);
}
}
我最终陷入某种无休止的循环,导致我不得不重新启动浏览器。它应该寻找的链接是:
- 索引.html
- 事件.html
- about.html
它找到了所有三个,但循环发生在 about.html 链接上。我不确定我的代码中是否遗漏了某些内容(可能看得太久了)。但我没有看到我在哪里遇到这个问题。
现在,我确实明白这可能不是实现此目的的最佳方法,如果不是,请告诉我,这是我认为创建导航栏的唯一方法,我不必更改 HTML每一页。