2013-06-27 14 views
6

Chciałbym napisać rozszerzenie chrome, które nie tylko wyświetla adresy URL odwiedzane w Historii, ale także adresy URL. Na przykład, jeśli kliknęłam na Wikipedii z Google, powinien powiedzieć "Wikipedia: odsyła do Google".Chrome.History get referring URL (JS)

Pierwszą próbą było pobranie elementu HistoryItem dla danego adresu URL, wyodrębnienie jego ostatniego elementu VisitItem, a następnie użycie referringVisitId do wyśledzenia początkowego adresu URL, jednak tutaj utknąłem. Mój problem sprowadza się do niezrozumienia znaczenia odnoszenia się do VISITId. Czy jest to identyfikator elementu historii, który otworzył nową stronę? Czy jest to identyfikator obiektu VisitItem zainicjowanego przez kliknięcie adresu URL? Dokumentacja stwierdza, że ​​jest to "identyfikator odwiedzającego strony odsyłającej", ale nadal pozostawia mnie to zaintrygowanym.

1) Jakie jest znaczenie polecania VisitId?

2) Czy mogę użyć referringVisitId do wyśledzenia odnośnego adresu URL? Jeśli tak to jak?

Dziękuję za poświęcony czas!

+0

Jeśli chcesz tylko targetujący URL, po prostu użyj 'document.referrer'. – Doorknob

+0

@Doorknob To nie działa, jeśli protokół wyjściowy to https, a protokół docelowy to http, lub kliknięcie linku ma ustawiony atrybut "rel =" noreferrer ". –

+0

To działałoby, aby uzyskać odnośnik URL strony, na której użytkownik jest aktualnie zalogowany, ale czy można go użyć, jeśli próbowałem przeanalizować całą historię? – Sergiy

Odpowiedz

1
  1. referringVisitId wydaje się być identyfikator VistItem które doprowadziły do ​​obecnego VisitItem.

  2. Wygląda na to, że nie można wysyłać zapytań o wizytówkę za pomocą jej identyfikatora. Lub spróbuj uzyskać element HistoryItem, do którego należy VisitItem.

Następnego najlepszą rzeczą byłoby, aby spróbować użyć zdarzenia onCreated i onUpdated razem próbować śledzić ostatnią kartę użytkownik był w.

To również ma wady chociaż, jeśli nowa karta jest otwarte przy użyciu window.open, gdy jesteś w innej karcie, otrzymasz niewłaściwy referrer. Chyba że próbujesz przechwycić wszystkie połączenia pod numerem window.open.

TL; DR: Nie jest łatwo uzyskać zakładkę, która otworzyła bieżącą kartę.

Powiązane problemy