SkarreMedlem sedan apr. 20012 427 inlägg Koden nedan är tänkt att ersätta target="_blank" på mina sidor och den har fungerat tidigare, men på den sida jag jobbar med för tillfället hittar den helt plötsligt ingenting (a_tags.length blir 0). Det spelar ingen roll vilken tagg jag testar med. Säkerligen ett pinsamt slarvfel, men jag hittar det inte i mitt nuvarande tillstånd.
function externalLinks() {
if (!document.getElementsByTagName) {
return;
}
var a_tags = document.getElementsByTagName("a");
for (var i = 0; i < a_tags.length; i++) {
var a = a_tags[i];
if (a.getAttribute("href") && a.getAttribute("rel") == "blank") {
a.target = "blank";
}
}
}
window.onload = externalLinks();
Är du säker på att den inte hittar länkarna?
Testa med
window.onload = externalLinks;
Alltså utan parenteser på funktionen. Och så bör det väl egentligen stå
a.target = "_blank";
?
Har du kollat med en alert att funktionen körs?
window.onload = externalLinks(); gör att funktionen körs innan sidan
laddas, och window.onload sätt till funktionens returvärde.
window.onload = externalLinks;
Ska det naturligtvis vara!
SkarreMedlem sedan apr. 20012 427 inlägg Jepp, jag har kollat att funktionen körs. Efter att a_tags har skapats testar jag alert(a_tags.length); och får då "0". :(
Web-TorMedlem sedan nov. 200013 890 inlägg Första kodsnutten i det här inlägget ska funka.
Rent tekinskt så körs di funktion som det är nu men innan sidan har alddats, alltså finns det inga länkar på sidan då.
Web-TorMedlem sedan nov. 200013 890 inlägg
nitro2k01 skrev:
Rent tekinskt så körs di funktion som det är nu men innan sidan har alddats, alltså finns det inga länkar på sidan då.
Som sagt var: Det funkar om man tar bort parenteserna efter funktionsanropet.
SkarreMedlem sedan apr. 20012 427 inlägg Nu är jag där igen. Funktionen vägrar köras utan parenteser, och när jag kör den med parenteser hittas istället inga länkar.
function externalLinks() {
if (!document.getElementsByTagName) {
return;
}
var a_tags = document.getElementsByTagName("a");
for (var i = 0; i < a_tags.length; i++) {
var a = a_tags[i];
if (a.getAttribute("href") && a.getAttribute("rel") == "_blank") {
a.target = "_blank";
}
}
}
window.onload = externalLinks;
Peter SMedlem sedan dec. 20025 483 inlägg Då föreslår jag att plockar bort ett eventuellt onloadattribut från <body>, alternativt lägger till externalLinks() till nämnd tagg.
:)
SkarreMedlem sedan apr. 20012 427 inlägg Aha, man kan alltså inte ha ett onload-attribut samtidigt. Det förklarar saken. Tack för det!