2009-03-17 18 views
1

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

+0

Darf ich fragen warum? Zeigen Sie an, dass Sie unsere Website verlassen ... diese Website liegt außerhalb unserer Nutzungsbedingungen? – alex

+0

Sure-Visitor Clickstream-Messung.Grundsätzlich möchte ich eine Übersicht darüber haben, wie viel Datenverkehr ich an ausgehende Daten sendet. –

+0

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

Antwort

2

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.

+0

+1, Dies sind die zwei am häufigsten verwendeten Möglichkeiten. –

+0

Danke Paolo ... Ich empfehle diese Optionen aus den Kommentaren zum OP. – alex

1

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.

+0

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? –

+0

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 :) –

0

Sie könnten eine einfache Serverumleitung tun und die Treffer protokollieren, die es bekommt
Oder muss es js sein?

0

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.