Ok I've got the code below from a site for generating a breadcrumb script for users based upon the directory they're in.
However I've got some directories where there needs to be more than one word in the name and this causes problems because it looks a little untidy.
So if the directory name is "Directory_A" would it be possible to code it so if an _ exists in the directory name, convert it to a space (ie %20)?
Code: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['topics'] = 'All Topics'; // 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); // find rooturl 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);



Reply With Quote


Bookmarks