1addEvent(window, 'load', linkPreview); 2function addEvent(obj, evType, fn){ 3 if( obj.addEventListener ) { 4 obj.addEventListener(evType, fn, false); 5 return true; 6 } else if( obj.attachEvent ) { 7 var r = obj.attachEvent("on"+evType, fn); 8 return r; 9 } else { 10 return false; 11 } 12} 13function linkPreview(){ 14 var links = document.getElementsByTagName("a"); 15 for( i=0; i<links.length; i++ ){ 16 var currentLink = links[i]; 17 var images = currentLink.getElementsByTagName("img"); 18 if( images.length == 0 ) { 19 var linkHref = currentLink.href; 20 if( linkHref.match(/amazon.com/) ) { 21 append(currentLink, "amazon"); 22 } else { 23 checkLinks(linkHref, currentLink); 24 } 25 } 26 } 27} 28function checkLinks(linkHref, currentLink){ 29 var linkHrefParts = linkHref.split("."); 30 var extension = linkHrefParts[linkHrefParts.length - 1]; 31 extension = extension.replace("/",""); 32 if( extension in { doc:1, docx:1, mp3:1, pdf:1, ppt:1, txt:1, wmv:1, xml:1, xls:1, xlsx:1, zip:1 } ){ 33 append(currentLink, extension ); 34 } 35} 36function append(currentLink, extension){ 37 var span = document.createElement('span'); 38 span.innerHTML = " "; 39 currentLink.parentNode.insertBefore(span,currentLink.nextSibling); 40 span.className = extension; 41}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.