Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Eine Funktion für Hyperlinks
Frage
Hallo!
Ich habe ein Problem mit JavaScript und Hyperlinks.
[b]Das Problem: [/b]
Es soll möglich sein, dass eine Funktion als Rückgabewert einen String oder sowas hat, welcher dann als Hyperlinks verwendet wird.
[b]Beispiel: [/b]
href="Startseite.html" target="mainFrame"...
und jetzt mit Funktion
href= getHyerplink() target="mainFrame"...
getHyperlink gibt verschiedene Links zurück, damit man quasi durch den Klick auf eine Fläche bei unterschiedlichen Bedingungen an verschieden Stellen der Seite gelangt.
Ich wollte das zuerst so machen, dass man direkt in JavaScript Hyperlinks verwendet und diese gleich aus dem Script aktiviert. Aber dies ist mir nicht gelungen :-(
Ein ganz lieben Dank für die Antworten
Antwort 1 von abschweb
Hallo Meak,
ich denke, die einfachste Lösung ist
und in der Funktion kannst du location.href beliebiges zuweisen.
Gruß
Manfred
ich denke, die einfachste Lösung ist
<a href="javascript:machLink ()"></a>
und in der Funktion kannst du location.href beliebiges zuweisen.
Gruß
Manfred
Antwort 2 von Meak
Hallo Manfred!
Vielen Dank für deine Antwort. Da hab ich aber ein Problem. Ich schaff die Umsetzung nicht.
Ich hab das so verstanden und probiert:
<a href="javascript:Auswertung ()"></a>
.
.
.
function Auswertung() {
return "Startseite.html";
}
Aber das geht irgendwie nicht. :-(
Vielen Dank für deine Antwort. Da hab ich aber ein Problem. Ich schaff die Umsetzung nicht.
Ich hab das so verstanden und probiert:
<a href="javascript:Auswertung ()"></a>
.
.
.
function Auswertung() {
return "Startseite.html";
}
Aber das geht irgendwie nicht. :-(
Antwort 3 von rfb
was abschweb meinte war wohl ungefähr dies:
wobei ich den Sinn nicht erkenne, es sei denn du stehst auf die Unzuverlässigkeit von JavaScript.
<script type="text/javascript">
function Auswertung() {
location.href="Startseite.html";
}
</script>
...
<a href="javascript:Auswertung ()"></a>
wobei ich den Sinn nicht erkenne, es sei denn du stehst auf die Unzuverlässigkeit von JavaScript.
Antwort 4 von abschweb
@rfb
Ja, so hab ich es gemeint, wobei diese Konstruktion nur einen Sinn hat, wenn die Funktion noch weitere Dinge erledigt, z. B. das Sprungziel von Bedingungen abhängig macht.
Wieso unzuverlässig?
Es sei denn, Javascript ist nicht aktiviert!
Gruß
Manfred
Ja, so hab ich es gemeint, wobei diese Konstruktion nur einen Sinn hat, wenn die Funktion noch weitere Dinge erledigt, z. B. das Sprungziel von Bedingungen abhängig macht.
Wieso unzuverlässig?
Es sei denn, Javascript ist nicht aktiviert!
Gruß
Manfred
Antwort 5 von rfb
die div. Varianten von JavaScript in den versch. Browsern arbeiten doch ziemlich verschieden (so gabs auch mal ´nen Opera, der statt location.href nur location wollte), zusätzlich kommen immer mehr Einstellmöglichkeiten dazu um PopUps, Window-Resizing und ähnlichen Unfug zu verhindern und letztlich noch die Frage, ist JavaScript überhaupt aktiviert - ich finde, das macht diese ergänzende Technik sehr unzuverlässig.
Das ist auch einer der Gründe, warum sie als nicht barrierefrei gilt.
Die vorgeschlagene Lösung funktioniert ja auch bei deaktiviertem JS nicht, genau genommen passiert einfach nix.
Sinnvoller ist da z.B. diese Lösung:
Abhängig von einer Bedingung ändert diese Funktion einfach das Linkziel, ohne JS gehts immer zu einem Stadardziel. Da Meak sich ausschweigt, was eigentlich die "unterschiedlichen Bedingungen" sein sollen, muss er wohl selbst basteln, wie die Funktion aufgerufen wird und was dann abgefragt wird.
Das ist auch einer der Gründe, warum sie als nicht barrierefrei gilt.
Die vorgeschlagene Lösung funktioniert ja auch bei deaktiviertem JS nicht, genau genommen passiert einfach nix.
Sinnvoller ist da z.B. diese Lösung:
<script type="text/javascript">
function Auswertung() {
if (bedingung==1)
document.getElementById("ziel").href="abc.html";
else
document.getElementById("ziel").href="xyz.html";
}
</script>
...
<a href="standardziel.html" id="ziel">text</a>Abhängig von einer Bedingung ändert diese Funktion einfach das Linkziel, ohne JS gehts immer zu einem Stadardziel. Da Meak sich ausschweigt, was eigentlich die "unterschiedlichen Bedingungen" sein sollen, muss er wohl selbst basteln, wie die Funktion aufgerufen wird und was dann abgefragt wird.
Antwort 6 von abschweb
@rfb
deine Lösung macht Sinn, wenn die Entscheidung über das Sprungziel zu einem früheren Zeitpunkt als beim Klick gefällt werden kann.
Ob der Link auch ohne Javascript funktionieren sollte, hängt vom Kontext ab.
Den kennt nur Meak.
Manfred
deine Lösung macht Sinn, wenn die Entscheidung über das Sprungziel zu einem früheren Zeitpunkt als beim Klick gefällt werden kann.
Ob der Link auch ohne Javascript funktionieren sollte, hängt vom Kontext ab.
Den kennt nur Meak.
Manfred
Antwort 7 von rfb
Zitat:
Den kennt nur Meak
und Meak drückt sich leider ziemlich unklar aus (siehe: Den kennt nur Meak
Zitat:
Aber dies ist mir nicht gelungen :-(
Aber dies ist mir nicht gelungen :-(
Zitat:
Aber das geht irgendwie nicht. :-(
na was denn??), daher wollte ich eigentlich erst gar nicht in den Thread einsteigen.Aber das geht irgendwie nicht. :-(
Antwort 8 von Meak
Hallo!
Ich wollt nur sagen, dass mir die Lösung rfb geholfen hat und jetzt alles wunderbar geht. Sogar browser-übergreifend.
Ich wollt nur sagen, dass mir die Lösung rfb geholfen hat und jetzt alles wunderbar geht. Sogar browser-übergreifend.

