02. september 2004 - 11:55Der er
14 kommentarer og 1 løsning
Noget replace i javascript
Hej
Jeg har følgende javascript fra nettet, og det giver et bread crumb trail:
_______________________________________________________________ <SCRIPT LANGUAGE="JavaScript"> <!-- var path = ""; var href = document.location.href; var s = href.split("/"); for (var i=2;i<(s.length-1);i++) { path+="<A HREF=\""+href.substring(0,href.indexOf("/"+s [i])+s[i].length+1)+"/\">"+s[i]+"</A> / "; } i=s.length-1; path+="<A HREF=\""+href.substring(0,href.indexOf(s[i])+s[i].length)+"\">"+s[i]+"</A>"; var url = window.location.protocol + "//" + path; document.writeln(url); //--> </script> _______________________________________________________________
Kan man et eller andet sted i det her script lave noget replace? Der kommer nemlig fx. http//: med som jeg gerne vil erstatte med ingen ting (altså luft), og jeg vil gerne omdømme det første "link" til fx Home.
roenving: tak det fungerer - dog har jeg fx en sti der ser så'n her ud:
Her er du: Home / site / Menu / Punkt1 / punkt1_sub / punkt1_sub_sub.htm
Her ønsker jeg faktsisk, at det er site der bliver omdøbt til Home (ellers fungerer linket heller ikke), da det der hedder Home nu, rent faktsisk bare er (på nuværende tidspunkt) localhost.
Ydermere vil jeg gerne kunne "slette" (replace) det punkt der hedder Menu i trailen -hvordan gør jeg det (da det heller ikke returnere nogen side)?
>>roenving: Når jeg putter scriptet ind på mine sider, som det ser ud nu (disse sider bliver generet i c#.NET, og lagt på med MCMS), så kommer fx. følgende trail på en side:
Her er du: Home/site/Menu/Punkt1/punkt1_sub/punkt1_sub_sub.htm
Her giver det ingen mening at man skal kunne klikke på Menu, da det bare refererer til en mappe der hedder Menu (ligger i en sitemanager til MCMS) og som ikke har nogen side. Derfor vil jeg gerne fjerne det fra stien. (og jeg ved præceist at den hedder Menu, plus at jeg har to til der hedder Menu1 og Menu2 som også skal slettes fra stien).
Derudover vil jeg ikke have, at både Home og site refererer til min forside - og vil derfor gerne kunne fjerne fx. site fra stien.
>>roenving: okay. vil det så sige at hvis jeg vil have fjernet dem der hedder menu1 og menu2 så kan jeg sætte det ind som en else if eller hvordan (kan nemlig ikke få det til at fungerer ud over det der er)
Eks.: <script type="text/javascript"> <!-- var path = ""; var href = document.location.href; var s = href.split("/"); var path="<A HREF=\""+href.substring(0,href.indexOf("/"+s[2])+s[2].length+1)+"/\">Home</A> / "; for (var i=3;i<(s.length-1);i++){ if(s[i].indexOf('Menu')!=0&&s[i]!='site') path+="<A HREF=\""+href.substring(0,href.indexOf("/"+s [i])+s[i].length+1)+"/\">"+s[i]+"</A> / "; else if(s[i].indexOf('Menu1')!=0&&s[i]!='site') path+="<A HREF=\""+href.substring(0,href.indexOf("/"+s [i])+s[i].length+1)+"/\">"+s[i]+"</A> / "; } i=s.length-1; path+="<A HREF=\""+href.substring(0,href.indexOf(s[i])+s[i].length)+"\">"+s[i]+"</A>"; var url = path; document.writeln(url); //--> </script>
roenving: Arhhh, okay, havde ikke lige set at det rent faktsisk var det den gjorde :-)
Men det virker :-)
Men for argumentes skyld, kan jeg så tilføje en else if på samme måde som ovenfor bare med et anden begyndelse - lad os sige jeg ville fjerne alt der starter med side?
-- nej, da vi springer dem over, som opfylder betingelsen, vil det, at du sætter en else på, betyde, at alle vil blive udskrevet mindst een gang, dem som ikke har side eller menu vil blive udskrevet 2 gange !-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.