4 Stimmen

Href- und Onclick-Problem im Anker-Link

Ich habe Anker-Link mit beiden href und onclick Ereignisse angegeben. Die onclick setzt location.href auf Server-Url und href auf einen anderen Link. Wenn der Link angeklickt wird, wird das href-Ereignis immer aufgerufen, aber onclick-Ereignis wird nur einmal aufgerufen (das ist nur für einen Anker-Link). Wenn ich Javascript debuggen funktioniert es richtig, dass es sowohl href und onclick.What kann das Problem sein?

0 Stimmen

Ich glaube, Sie brauchen mehr Informationen. Warum versuchen Sie, zwei Anfragen mit einem Anker-Tag zu senden? Was meinen Sie mit "wird nur einmal aufgerufen" - nur für ein Anker-Tag, nicht alle oder nur das erste Mal, aber nicht nachdem die Seite ersetzt wurde?

0 Stimmen

Es ist völlig unklar, was Ihr Ziel ist. Wenn Sie sagen, dass "onclick" einen Ort und "href" einen anderen festlegt, zu welchem Ort soll der Benutzer dann eigentlich gehen? Sie wissen, dass er nicht zu beiden Orten auf einer Seite gehen kann. Durch die Überprüfung Kommentare zu einigen der Antwort bekomme ich ein Gefühl, Sie wollen Benutzer zu 1 Ort zu nehmen und dann zu einem anderen umzuleiten. Wenn ja, dann sollte der Redirect serverseitig ausgegeben werden. D.h. wenn Sie href="http://stackoverflow.com/target.html" und onclick="window.location='/action.call'" haben, müssen Sie "/action.call" in href einfügen und serverseitig den HTTP-Status 302 als Umleitung senden. Schlagen Sie auch "redirect after post" nach!

12voto

Jonathan Fingland Punkte 54655

トライ

 <a href="whatever.html" onclick='window.location.href="http://whereverelse";return false;'>linky</a>

Nur zur Erklärung: Die Rückgabe von false verhindert in diesem Fall die Standardaktion.

Aber warum sollten Sie das tun wollen?

0 Stimmen

Ich schätze, dass die Rückgabe von false Href functioning.but ich möchte, dass beide work.Onclick tut Serverseite Arbeit wie die Aktualisierung der Datenbank, nach der ich den Benutzer auf richtigen Link, der in Href.But dies geschieht nur einmal, wie in das Problem angegeben ist umleiten möchten. Ich habe versucht, den Benutzer von der Server-Seite selbst umzuleiten, aber es schlägt fehl, wenn url mit verschiedenen Protokollen wie mms://, notes:// usw. beginnt.

2 Stimmen

Location.href ist für die Änderung der aktuellen Seite. Es klingt, als wollten Sie eine AJAX-Anfrage stellen

0 Stimmen

Oh, das ist so faul wie ich... Deuuuude, wie lange Sie denken, Sie können vermeiden, AJAX.. bitte GIVE IN... Ich habe versucht, die gleiche Sache einmal & ich habe jetzt... vertrauen Sie mir, es gibt Frieden in der Vorlage... lol

5voto

Patrick McElhaney Punkte 55251

Es klingt so, als ob Sie möchten, dass der Link eine Seite aufruft, auf der serverseitiger Code (z. B. PHP) ausgeführt wird, und dann den Browser an eine andere Stelle weiterleitet. Das geschieht normalerweise dadurch, dass das serverseitige Skript eine Umleitungsantwort mit der zweiten URL sendet.

1voto

miketosh Punkte 11

Für diejenigen, die fragen "Warum?", habe ich einen Grund. Mittlere Klicks. Vielleicht haben Sie AJAX, das die Details vom Server abrufen und dann auf derselben Seite aufbereiten kann, aber wenn ein mittlerer Klicker diese Daten auf einer neuen Seite sehen will, wird er blockiert.

Die Berichte würden also den Nutzern, die dies wünschen, die gleiche Funktionalität bieten.

Als gewohnheitsmäßige Mitte-Klicker, hasse ich Tags mit einer Leidenschaft. aber ich habe mit GreaseMonkey gefunden, kann ich manchmal neu zuweisen die Javascript-Href auf die onclick, und versuchen, eine gültige URL für die href zu analysieren. Ich wünschte wirklich, dass das Öffnen von Javascript in einer neuen Registerkarte würde nur klonen die Seite dann den Code ausführen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X