Korrektur bei Script
David Hörpel
- javascript
0 MudGuard0 David Hörpel0 aw
0 Thomas Meinike0 Christian0 MudGuard
Hallo!
Kann mir einer sagen, warum dieses Script den Anker nicht findet?
<html><head><title>Test</title>
</head>
<script type="text/javascript">
<!--
wert1 = "hallo";
wert2 = "hallo1";
function test()
{
if(document.anchors[wert1])
{location.href= "#"+wert1}
else if(document.anchors[wert2])
{location.href= "#"+wert2 }
else {
alert("Not found!")
}
}
//-->
</script>
<body onload="test()">
<a name="hallo" href="#">ddd</a>
</body>
</html>
Das Script steht jetzt hier schon mehrfach im Forum, aber leider ist die richtige Lösung bis jetzt immer noch ausgeblieben. Deshalb wäre ich euch für eure richtige Hilfe dankbar!
Gruß David!
Hi,
Wieviele Threads willst Du zu diesem Thema eigentlich noch starten?
cu,
Andreas
Hi,
Wieviele Threads willst Du zu diesem Thema eigentlich noch starten?
Keine mehr, wenn man mir keine falschen Tipps mehr gibt!
Wie komme ich jetzt zu einer Lösung???
cu,
Andreas
Hallo,
Keine mehr, wenn man mir keine falschen Tipps mehr gibt!
Wie komme ich jetzt zu einer Lösung???
Selbst ist der Mann.
Mit freundlichen Grüßen,
Andreas Waidelich
Hallo,
Kann mir einer sagen, warum dieses Script den Anker nicht findet?
[...]
Doch, das funktioniert unter Mozilla und Opera, aber nicht im IE. Probiere es alternativ so:
if(document.anchors[0].name==wert1)
{location.href= "#"+wert1}
else if(document.anchors[0].name==wert2)
{location.href= "#"+wert2 }
else {
alert("Not found!")
}
Wenn beide Anker nicht gleichzeitig vorkommen und der Index des gesuchten Ankers nicht bekannt ist, dann um die Abfrage noch ein Testschleife ueber document.anchors[0] bis document.anchors[document.anchors.length-1] legen.
MfG, Thomas
Hi,
Thomas meinte es funzt im Mozilla und Opera.
Ich vermute der kleine Fehler liegt hier:
<a name="hallo" href="#">ddd</a>
document.anchors[] spricht alle <a name=""> (Anker) an, während document.links[] alle <a href=""> (Link) anspricht.
Ein <a name="hallo" href="#"> gibt es nicht, soweit ich weiß!
Hieraus:
location.href= "#"+wert1
geht ja eigentlich hervor, dass du einen Anker meinst!
Wenn es sich um einen Anker handeln soll, mach das href weg! Und das "ddd". Ich glaube laut W3C darf ein Anker keinen Text o.ä. enthalten.
<a name="hallo" href="#"> kann man ja interpretieren wie man will. Der eine als Anker, der andere als Link.
Christian
Hi,
Wenn es sich um einen Anker handeln soll, mach das href weg! Und das "ddd". Ich glaube laut W3C darf ein Anker keinen Text o.ä. enthalten.
Warum hast Du nicht nachgeschlagen?
Natürlich darf ein a-Element sowohl ein name- alos auch ein href-Attribut gleichzeitig besitzen (siehe z.B. die Beispiele zu a - link siehe unten).
Genauso wie es nur ein href-Attribut besitzen darf. Oder nur ein name-Attribut.
Oder sogar keines von beiden (dieser Fall wird explizit erwähnt im Standard).
Nachzulesen unter http://www.w3.org/TR/html401/struct/links.html#edef-A
cu,
Andreas