Search code examples
javascripthtmlbreadcrumbs

document.title and spaces in a string


I'm using a breadcrumbs.js file.

function breadcrumbs(){
sURL = new String;
bits = new Object;
var x = 0;
var stop = 0;
var output = "";
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/a> &nbsp;|&nbsp; ";
}
document.write(output + document.title);
}

What it does is to traverse the folder structure and build it as a set of breadcrumbs. So for example:

/root
+ design-library
---+ foo
--------+ bar
------------+ baz name with space

And this would return as:

design-library | foo | bar | baz%20name%20with%20space | filename

How can I maintain the space in the file folder name, but return as:

design-library | foo | bar | baz name with space | filename

Solution

  • Use decodeURIComponent(str), which converts %xx values back into single characters.