Um den gesamten Benutzer Clickstream zu verfolgen, möchte ich ein Javascript-Ereignis auslösen, wenn der Benutzer mit der rechten Maustaste klickt, und wählen Sie "In neuem Tab öffnen" (oder mittlere Klicks in den meisten Browser) auf einem Link. Die meisten dieser Links verlinken außerhalb meiner Website, und ich möchte so wenig wie möglich in die allgemeine Browsererfahrung (wie: Statusleiste usw.) eingreifen. Welche Möglichkeiten gibt es, dies zu lösen?Capture Link Klickereignisse von Javascript
Antwort
Wenn Sie nach Möglichkeiten freuen externen Link Hits zu sehen, könnten Sie versuchen, die folgenden Schritte aus:?
Verwenden Sie ein Skript, zB link.php src = http://www.example.com, die einen Zähler pro IP & Benutzer erhöht Agenten-Kombination beim Klicken Dies sieht jedoch in der Statusleiste nicht sehr gut aus. Es könnte auch von Webcrawlern gespeichert werden.
Verwenden Sie unauffälliges JavaScript, um Ereignishandler an externe Links anzuhängen. Sie können feststellen, ob sie extern sind, wenn der Hostname vorhanden ist und nicht mit dem übereinstimmt, auf dem Sie sich befinden. Sie könnten dann diesen Event-Handler verwenden, um die href zu speichern, den Standard des click-Ereignisses zu verhindern, eine Zahl ähnlich dem ersten Skript zu inkrementieren und dann die window.location an die tatsächliche href zu senden. Dies scheitert natürlich ohne JavaScript aktiviert/unterstützt.
+1, Dies sind die zwei am häufigsten verwendeten Möglichkeiten. –
Danke Paolo ... Ich empfehle diese Optionen aus den Kommentaren zum OP. – alex
Es gibt viele Möglichkeiten, die ein Benutzer einen neuen Tab im Browser erstellen:
- Mittel klicken
- Kontextmenü
- Maus Geste
- "Neue Registerkarte" Schaltfläche in der Symbolleiste
- "Datei"> "Neue Registerkarte"
Leider gibt es keine Möglichkeit, all diese und möglicherweise mehr Benutzeraktionen zu behandeln, die eine neue Registerkarte erstellen könnten.
Vielen Dank für Ihre Antwort. Ich bin nur an neuen Tab-Ereignissen interessiert, die von einem Link auf meiner Website stammen, sodass die meisten davon nicht zutreffen. Irgendeine Möglichkeit, das zu erreichen? –
Nun, das ändert die Dinge ein bisschen - ich denke, wo Sie Probleme haben, ist mit Maus-Gesten und Menschen mit Multi-Button-Mäusen. Denken Sie daran, dass Benutzer viele verschiedene Möglichkeiten haben können, einen Link in einem neuen Tab zu öffnen. Viel Glück :) –
Sie könnten eine einfache Serverumleitung tun und die Treffer protokollieren, die es bekommt
Oder muss es js sein?
Mittlere Klickerfassung funktioniert.
Sie
haben die Browser-Version zu überprüfen (IE6 nicht alles auf Mitte Klick öffnen),
mousedown- verwenden und mouseup wenn diese beiden Ereignisse auf die passieren zu überprüfen Gleiches Element,
müssen Sie überprüfen, welche Taste gedrückt wurde. (JQuery „die“ Funktion, zum Beispiel)
Wenn mousedown- und mouseup auf demselben Elemente passiert, wird ein neues Fenster öffnet, so dass Sie wissen, dass Ihr Link geklickt wurde.
- 1. Android Webview Capture Link klickt
- 2. Javascript Capture-Taste
- 3. Capture HTTP-Anfragen mit Javascript
- 4. jQueryUI, Optionsfeldstatus und Klickereignisse
- 5. Javascript Debugging - Wie man auf alle unbekannten Klickereignisse einbricht
- 6. JavaScript: Link von GitHub oder Link zur lokalen Datei?
- 7. Capture Tastendruck in Javascript (Google Docs)
- 8. capture rechten klick durch Javascript, ohne hwmode
- 9. Capture Inhalt von HTML-Tags
- 10. Javascript Countdown Link anzeigen
- 11. Javascript URL Parameter Capture funktioniert nicht richtig
- 12. Erfassen aller Klickereignisse in Benutzersteuerelement
- 13. Javascript: Capture-Wert im Formularaktionsfeld von Laravel App verwenden
- 14. Javascript regexp-Capture-Matches durch Zeichen begrenzt
- 15. Javascript-link in Bild
- 16. Capture Signatur von wpf
- 17. Capture Bild von BinaryMessage
- 18. Capture-Ausgabe von Daten
- 19. Capture fehlgeschlagen von Kamera
- 20. Capture Bild von Fragment
- 21. Verwendung von org-capture-templates mit mu4e
- 22. jQuery verarbeitet nicht -einige- Klickereignisse
- 23. GWT 2.1 CellTable Spaltenkopf Klickereignisse
- 24. jQuery mobile keine Klickereignisse nach .load()
- 25. Anonyme Methoden - Variable Capture versus Wert Capture
- 26. JavaScript Fehler in Browser-Link
- 27. Link Javascript mit GWT-Widget
- 28. JavaScript Blob Dateiname ohne Link
- 29. Link-JavaScript-Funktion Schaltfläche Senden
- 30. Capture-Ausgabe von Git-Befehl?
Darf ich fragen warum? Zeigen Sie an, dass Sie unsere Website verlassen ... diese Website liegt außerhalb unserer Nutzungsbedingungen? – alex
Sure-Visitor Clickstream-Messung.Grundsätzlich möchte ich eine Übersicht darüber haben, wie viel Datenverkehr ich an ausgehende Daten sendet. –
Vielleicht ist der Titel dieser Frage irreführend? Sie beziehen sich auf "In neuem Tab öffnen", aber die von Ihnen empfohlene Lösung beschreibt lediglich Möglichkeiten zur Erfassung von Links zu externen Websites. Ich würde die Frage neu formulieren, um Menschen zu helfen, die in der Zukunft auf diese Frage stoßen. – belugabob