我目前正在學習javascript/CSS,因此我試圖實現在以下位置找到的動態Javascript麪包屑:http://www.webmonkey.com/2010/02/build_dynamic_breadcrumbs_with_javascript/。代碼如下。修改範圍內的鏈接時出現問題
我想要做的是修改麪包屑生成的鏈接;我希望他們能夠成爲一片綠色的樹蔭,只要他們不活躍或被徘徊,就沒有文字裝飾。當他們活躍或徘徊時,我希望他們變紅並加下劃線。
麪包屑正在正確生成,但它看起來像CSS沒有正確應用。無論如何,這些鏈接都以下劃線表示,並且在訪問之後以藍色開始,然後是紫色。這很奇怪,因爲如果我修改應用的鏈接的大小,重量,字體家族等,而不是顏色或文字修飾。我可能在某個地方犯了一個初學者的錯誤,所以提前感謝您的時間和幫助!
我的CSS是:
.crumb{
FONT-WEIGHT: medium;
FONT-SIZE:medium;
FONT-STYLE:italic;
FONT-FAMILY:Arial;
}
.crumb:link, .crumb:visited{
color: green;
text-decoration: none;
}
.crumb:hover, .crumb:active: {
color:red;
text-decoration: underline;
}
的麪包屑的代碼是:
var crumbsep = " > ";
var precrumb = "<span class=\"crumb\">";
var postcrumb = "</span>";
var sectionsep = "/";
var rootpath = "/"; // Use "/" for root of domain.
var rootname = "Home";
var ucfirst = 1; // if set to 1, makes "directory" default to "Directory"
var objurl = new Object;
objurl['main-default'] = 'Site Home';
// Grab the page's url and break it up into directory pieces
var pageurl = (new String(document.location));
var protocol = pageurl.substring(0, pageurl.indexOf("//") + 2);
pageurl = pageurl.replace(protocol, ""); // remove protocol from pageurl
var rooturl = pageurl.substring(0, pageurl.indexOf(rootpath) + rootpath.length);
if (rooturl.charAt(rooturl.length - 1) == "/") //remove trailing slash
{
rooturl = rooturl.substring(0, rooturl.length - 1);
}
pageurl = pageurl.replace(rooturl, ""); // remove rooturl fro pageurl
if (pageurl.charAt(0) == '/') // remove beginning slash
{
pageurl = pageurl.substring(1, pageurl.length);
}
var page_ar = pageurl.split(sectionsep);
var currenturl = protocol + rooturl;
var allbread = precrumb + "<a href=\"" + currenturl + "\">" + rootname + "</a>" +
postcrumb; // start with root
for (i=0; i < page_ar.length-1; i++)
{
var displayname = "";
currenturl += "/" + page_ar[i];
if (objurl[page_ar[i]])
{
displayname = objurl[page_ar[i]];
}
else
{
if (ucfirst == 1)
{
displayname = page_ar[i].charAt(0).toUpperCase() + page_ar[i].substring(1);
}
else
{
displayname = page_ar[i];
}
}
allbread += crumbsep + precrumb + "<a href=\"" + currenturl + "\">" + displayname +
"</a>" + postcrumb;
}
document.write(allbread);
謝謝您指出額外的冒號。 +添加a:完美運作。另外,我不確定客戶端/服務器的含義。我認爲這可能有點過頭了,因爲我仍然從此開始。你能解釋一下嗎? – JWA
如果您使用的是document.write,那麼您在加載頁面時會這樣做,因此服務器可以在HTML中編寫麪包屑並且您不需要在腳本中執行它,腳本更好。 :-) – RobG