Just a short snippet on this method:
function addDirectorySeparator() { var li = document.getElementsByTagName('li'); var i; for(i=0; i<li.length; i++) { if(li[i].firstChild.nodeName == 'KBD') { var separatorContent = '-'; var separator = document.createElement('span'); separator.className = 'dir-sep'; separator.appendChild(document.createTextNode(separatorContent)); var item = li[i] var kbd = item.getElementsByTagName('kbd')[0]; if(navigator.userAgent.indexOf('MSIE') == -1) { item.insertBefore(separator, kbd); } else { var itemHTML = item.innerHTML; item.innerHTML = '<span class="dir-sep">-</span>' + itemHTML; } } }
insertBefore()
has the following syntax: parentElement.insertBefore(newElement, referenceElement)
. You need a reference element to properly add the new element within the parent node. Of course Internet Explorer has some problems with this method, so I cut it straight and I wrote a subroutine just for it.