为breadcrumb菜单定义变量?

时间:2012-08-06 16:09:18

标签: javascript breadcrumbs

我在网上发现了一个面包屑导航生成器。我已经包含了代码。它从标题中提取当前页面的信息。我不希望它从标题中拉出来,因为这会产生太长的痕迹。页面标题类似于页面名称 - 文件夹名称 - 我的公司。这是为了工作,所以我不能改变标题的格式。

我尝试在每个名为pageName的页面上定义一个变量,并在crumb代码中将title更改为pageName,但这似乎不起作用。

<script type="text/javascript">
var pageName= 'Name';
</script>

我如何定义变量以使其起作用。或者在短划线之前拉出页面标题的第一部分?

function breadcrumbs(){
  sURL = new String;
  bits = new Object;
  var x = 0;
  var stop = 0;
  var output = "<div class=breadcrumbs><A HREF=/>Home</A> &nbsp;&raquo;&nbsp; ";

  sURL = location.href;
  sURL = sURL.slice(8,sURL.length);
  chunkStart = sURL.indexOf("/");
  sURL = sURL.slice(chunkStart+1,sURL.length)

while(!stop){
  chunkStart = sURL.indexOf("/");
  if (chunkStart != -1){
    bits[x] = sURL.slice(0,chunkStart)
    sURL = sURL.slice(chunkStart+1,sURL.length);
  }
  else{
    stop = 1;
  }
  x++;
}

for(var i in bits){
  output += "<A HREF=\"";
  for(y=1;y<x-i;y++){
    output += "../";
  }
  output += bits[i] + "/\">" + bits[i] + "</A> &nbsp;&raquo;&nbsp; ";
}
document.write(output + document.title);
    document.write("</div>");
}  

1 个答案:

答案 0 :(得分:0)

更改此行:

document.write(output + document.title);

要:

document.write(output + pageName);

这假定在此代码出现的每个页面上定义了pageName

您可以使用以下代码进行改进:

if (typeof pageName != 'undefined')
{
    document.write(output + pageName);
}
else
{
    document.write(output + document.title);
}

此代码将使用pageName(如果存在),否则会回退到页面标题。