• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Link per Javascript drücken

Status
Für weitere Antworten geschlossen.

MasteR ChieF

Mitglied
Hallo Community

Ich versuche gerade, ein Link per Javascript zu "drücken". Aber das funktioniert nicht so wie ich das möchte =)

HTML:
<p onclick="javascript:this.getElementsByTagName('a')[0].click()">
        Text: bitte klicken
        
        <a href="javascript:alert('clicked')">link</a>
</p>

Obiges Beispiel funktioniert im IE so wie ich das gerne hätte. Aber da das zu schön wäre, muss das natürlich im FF nicht funktionieren. Ich habe herausgefunden, dass ich das Per BUtton machen müsste. Also statt einen Link, einen Button.
Dann funktioniert das bei beiden Browsern.

Das Problem ist nur, ich brauche einen Link.

Hat jemand eine Lösung??
Wäre echt froh =)

Danke und Gruss
MAsterChief
 
Würde in einem Script-Bereich eine Funktion die definieren, die dein "alert" (oder was auch immer passieren soll) ausführt. Dann mach du dein p onclick="meineFunktion();" bzw a onclick="meineFunktion(); return false;"
Denn die Funktion click() gibt es meines Erachtens nicht für Links.(Wäre mir zumindest neu)
Dass es im IE funktioniert wundert mich da ;)
 
Ja das hat mich auch gewundert =) aber so wie ich das oben geschrieben habe, funktioniert das im IE.

Deine Antwort, hilft mir aber nicht wirklich weiter. Mein Problem ist, dass ich gerne per event, ein Link ausführen kann. Als ob ich selber draufklicken würde...
 
Was willst du wirklich? einen Link ausführen, heißt zu einer Seite wechseln: also window.location.href = link.href; oder die Funktion in einem JS Event ausführen? also link.click()
das was du machst, mit dem Pseudoprotokoll javascript: ist eher schlecht und sollte vermieden werden. Es gibt auch keinen Grund es zu verwenden.
 
Das oben ist ja nur ein simples Beispiel =)
Das Problem ist, ich brauche einen Link. Der sieht folgendermassen aus:

Code:
<a onclick="Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, httpMethod: 'POST', loadingElementId: 'ajaxResultLoading', updateTargetId: 'ajaxResult' });" href="/Test/MetaLanguage.aspx/SelectColumn/AD.ExpiresDate?page=1">Select</a>

Das Problem ist, das ich hier ein Onclick Event und ein Href habe. somit kann ich das nicht mit loaction.href lösen.

Der Grund ist folgendermassen: Ich habe eine Tabelle, und in der letzten Spalte ist der obige Link (welche funtkioniert beim draufklicken =).

Nun möchte ich aber, das der User, die ganze Zeile anklicken kann, und das selbe passiert wie beim Link. um eine Zeile kann ich ja kein <a> machen, somit bleibt in meinen augen nur die andere variante. oder??
 
Wenn es eine Tabellenzeile ist, kannst du auf dem <tr> ein onclick registrieren, welches dann per location.href die neue Seite aufruft.
 
Das Grundproblem ist, dass du einen Inline (also im HTML Code) JS Event nutzt, gerade bei solch komplizierten aufrufen wie deinem ist das absolut nciht mehr empfehlenswert. Deine Frage klingt auch so, dass du dich damit in eine schwierige Aufgabe manövriert hast und jetzt versuchst mit einem simplen workaround eine Lösung für das grundsätzliche Problem zu finden.

Da du ein modernes (und sehr komplexes) Framework verwendest, ist es um so erstaunlicher, dass du mit solchen Steinzeitmethoden arbeitest. Jedes Framework hat ein Eventhandling, dass jeden Inline Event überflüssig macht.
 
Danke für euere Antworten =)

@struppi: du hast absolut recht. was die Steinzeitmethoden betrifft.

Habe nun das Problem gelöst. Jedoch etwas komplexer. Hat grundsätzlich nichts mer mit der Frage zu tun.
Kurz: ich habe die Ajax-Handle Funktion abgeändert.

Danke für eure hilfe
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben