【发布时间】:2020-08-12 22:37:56
【问题描述】:
有人可以看看这个并告诉我我做错了什么吗?基本上,该脚本应该获取页面的 URL,通过“/”将 URL 拆分为一个数组,然后文档为每个子目录写入 HTML href 链接。它有点工作,直到有一个距根目录深 2 个文件夹的网页,然后它就搞砸了。
如果这是 URL,例如:website.com/root/folder/subfolder/page.html 它给了我:
> Home / Folder / Subfolder / Page
视觉上在页面上,这是正确的。 (website.com/root/ 是实际的主页。)
“主页”的链接正确,并带您到website.com/root/。
“文件夹”的第二个链接是正确的,将您带到website.com/root/folder/。
但是,“子文件夹”的第三个链接是错误的,并且由于某种原因再次链接到 website.com/root/。
必须是第 14 行的内容,上面写着getLoc(i-3,subs[i],subs.length)+defp+,但我不知道我错过了什么。
这是脚本:
function breadCrumbs(base,delStr,defp,cStyle,tStyle,dStyle,nl) {
tit=document.title.replace(/Ak DRB > /g,"");
loc=window.location.toString();
subs=loc.split("/");
document.write('<strong>></strong> <a href="/drb/" class="'+cStyle+'">Home</a> '+'<span class="'+dStyle+'">'+delStr+'</span> ');
if (loc.includes(".html") && !loc.includes("index.html")) {
a=1;
}else{
a=2;
}
for (i=4;i<(subs.length-a);i++) {
SUB=makeCaps(unescape(subs[i]));
document.write('<a href="'+getLoc(i-3,subs[i],subs.length)+defp+'" class="'+cStyle+'">'+SUB+'</a> '+'<span class="'+dStyle+'">'+delStr+'</span> ');
}
if (nl==1) document.write("<br>");document.write('<span class="'+tStyle+'">'+tit+'</span>');
}
function makeCaps(a) {
g=a.split(' ');for (l=0;l<g.length;l++) g[l]=g[l].toUpperCase().slice(0,1)+g[l].slice(1);
return g.join(" ");
}
function getLoc(c,e,f) {
var d="";
if (c>0) {
for (k=0;k<c;k++) d=d+"../";
}else{
d="../"+e+"/";
}
return d;
}
【问题讨论】: