2013-06-27 5 views
6

Ich möchte eine Chrome-Erweiterung schreiben, die nicht nur die URLs im Verlauf, sondern auch die verweisenden URLs aufgeführt. Zum Beispiel, wenn ich Wikipedia von Google angeklickt habe, sollte es "Wikipedia: von Google bezeichnet" heißen.Chrome.History erhalten Verweis URL (JS)

Mein erster Versuch war, ein HistoryItem für die fragliche URL zu nehmen, das letzte VisitItem zu extrahieren und dann referingVisitId zu verwenden, um die anfängliche URL aufzuspüren, aber das ist, wo ich stecken geblieben bin. Mein Problem besteht darin, die Bedeutung von referingVisitId nicht zu verstehen. Ist es die ID des History-Objekts, die die neue Seite geöffnet hat? Ist es die ID des VisitItems, die durch den URL-Klick ausgelöst wurde? Die Dokumentation besagt, dass es sich um die "Visit ID des Referrers" handelt, was mich jedoch immer noch verwirrt.

1) Was bedeutet referingVisitId?

2) Kann ich referingVisitId verwenden, um die verweisende URL aufzuspüren? Wenn das so ist, wie?

Vielen Dank für Ihre Zeit!

+0

Wenn Sie nur die verweisende URL möchten, verwenden Sie einfach 'document.referrer'. – Doorknob

+0

@Dooknob Das funktioniert nicht, wenn das Ursprungsprotokoll https ist und das Zielprotokoll http ist, oder wenn der angeklickte Link das Attribut 'rel = "noreferrer" 'gesetzt hat. –

+0

Dies würde funktionieren, um die Verweis-URL der Seite zu erhalten, auf der sich der Besucher gerade befindet, aber ist es möglich, diese zu verwenden, wenn ich den gesamten Verlauf analysieren wollte? – Sergiy

Antwort

1
  1. referringVisitId scheint die ID des VistItem zu sein, die auf den aktuellen VisitItem geführt.

  2. Es scheint, als wäre es nicht möglich, ein VisitItem nur mit seiner ID abzufragen. Oder versuchen Sie, das HistoryItem abzurufen, zu dem das VisitItem gehört. der Benutzer hat.

    Dies auch wenn es Fehler hat, wenn ein neuer Tab ist

Das nächste wäre Beste, was das onCreated und onUpdated Ereignis zu versuchen, mit zusammen zu versuchen, die letzten Reiter zu verfolgen geöffnet mit window.open, während Sie in einem anderen Tab sind, würden Sie den falschen Referrer bekommen. Es sei denn, Sie haben versucht, alle Anrufe auf window.open abzufangen.

TL; DR: Es ist nicht einfach, die Registerkarte zu öffnen, die die aktuelle Registerkarte öffnete.