hur fungerar dte med aktiva länkar, för då jag klickar mig vidare på en länk dvs navigerar från default.htm till blabl.htm i menyn så skall ju blbla.htm vara aktiv och en bakgrund synas enligt min kod nedan, men eftersom jag går till en annan sida så läser den in koden på nytt och den blir inte aktiv, finns det ngt workaround? utan att behöva programmera i ngt serverside språk?
Klart det finns en WorkAround.
Du kan loopa igenom alla länkar på sidan, och kolla om href är samma som document.location.href och isåfall ändra style/class på den.
Du använder det för att loopa igenom alla länkar på sidan. Men istället för att kontrollera om attributet rel har värdet external, så får du kolla om href är samma som document.location.href, och isåfall ändra style på länken
Du missförstår inte det där med "active" då?
"active" är en s.k. selector som jag tror bara hänger kvar sen webbens begynnelse och har ingen egentlig funktion idag. Det är bara det korta ögonblick när användaren klickar på själva länken, inget annat. Har alltså inget som helst att göra med om du har själva sidan som länken leder till uppe (dvs "aktiverad") eller inte.
ok, har säkert missförstått de... e inte så haj på det här, skulle va riktigt tacksam för hjälp?
OK... men det innebär ju att ingen hinner se dina finesser ändå. Ett klick tar ju liksom 1/10 sekund eller nåt (?) och man glor ju sällan på länken för att se om den ändrar färg under den där tiondels sekunden... och du har dessutom en bakgrundsbild som ska ladda osv...
Så om det inte är jag som missuppfattar helt vad du är ute efter tycker jag att du ska glömma att formatera "active" helt.
Däremot är det "a:visited" som visar länkar man redan använt (dvs öppnat de sidorna). Men om man har sida A uppe och t.ex. öppnar sida B i en ny tabb via en länk i sida A, så måste sida A laddas om för att visa stilen för "a:visited" i länken till sida B.
Passade på att döpa om funktionen så namnet beskriver vad den gör...
function findActiveLink() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") == document.location.href) {
anchor.className = anchor.className + " activeLinkClass";
}
}
}
window.onload = findActiveLink;
Scriptet lägger då till "activeLinkClass" till den länk som går till sidan du redan är på och då kan du använda css för att få den att se aktiv ut. Men du måste lägga till den classen i din css.
Nate.A gjorde som du beskrev men det fungerar fortfarande inte? utan bakgrunden syns vid onclick och därefter när jag hoppar till nästa sida så försvinner den?
i mitt första exempel, så lägger jag till ett onclick-event på länken, som triggar window.open för att öppna länken i ett nytt fönster. Sidan som öppnas har jag (eventuellt) ingen kontroll över, men scriptet körs vid onload på alla mina sidor.
i mitt fall skall det inte öppnas i ett nytt fönster, utan har en meny som ser ut på följande sätt:
hem översikt ....
och vill att en bakgrund skall följa med då man klickar på olika länkar i menyn, testade med Nate.As lösning som borde fungera rent kodmässigt men det gör det inte...
Nate.A gjorde som du beskrev men det fungerar fortfarande inte? utan bakgrunden syns vid onclick och därefter när jag hoppar till nästa sida så försvinner den?
Har du möjlighet att posta en länk till din sida? En gissning är att du har fler javascript på sidan som orsakar konflikt med window.onload...
553 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e