2013-03-06 14 views
5

ho cercato attraverso così e questa domanda ha beenaskedbeforeseveraltimes, ma ho trovato risposte che spiegano come il comportamento Voglio realizzare è in realtà realizzato.Come rilevare un elemento in una pagina dei risultati di ricerca e 'stato aperto in un'altra scheda del browser

Quello che ho in mente è imitare la funzione booking.com, in cui quando apri un risultato di ricerca dall'elenco dei risultati di ricerca, un div indica che il risultato è stato aperto in un'altra scheda (o finestra), e svanisce quando l'altra scheda (o finestra) è stata chiusa.

Screenshot: enter image description here

Primo tentativo è stato quello di verificare se alcuni javascript è stato allegato ai collegamenti, ma non è questo il caso, perché se è sufficiente copiare l'URL dalla sorgente della pagina, e aprirlo, la funzione lavori.

Quindi ho pensato che potrebbe essere in qualche modo gestita sul lato server, acceso wirehark per cercare di intrappolare eventuali chiamate ajax tra le due pagine aperte e il server. C'erano molte richieste, ma nessuno sembra passare le informazioni necessarie (immagino l'ID dell'hotel o qualche URL). Si noti inoltre che l'apertura dell'URL della voce risultato, che include l'ID della sessione, in una finestra di navigazione in incognito o in un'altra finestra del browser (intendo, firefox anziché chrome), interrompe la funzionalità; in modo tale da escludere qualsiasi sessione o tracciamento dell'indirizzo IP.

Ultimo tentativo che ho potuto pensare era la pagina dei risultati della ricerca sta interrogando alcuni cookie che è impostato sul dominio quando un'altra pagina viene aperta e disinserita quando viene chiusa. Così ho controllato i cookie, il cui contenuto è in realtà un po 'criptico da capire, ma quello che ho visto è che nessun cookie in realtà viene modificato su altre schede di apertura e chiusura, quindi, ancora una volta, non può essere fatto in questo modo.

Cosa rimane?

risposta

2

In teoria, dovrebbe essere possibile utilizzare localStorage/sessionStorage per fare ciò impostando l'URL della pagina corrente su ogni pagina e controllando ogni tanto sulla pagina "originale" per vedere se il valore non è il uguale a document.location.

Se si imposta anche l'ora corrente nell'archivio, è possibile verificare se la pagina è chiusa, verificando se "l'ultimo tempo di tabulazione" è, per esempio, più di 30 secondi fa o alcuni di questi.

Per quanto riguarda il sito Web, l'ho visitato e ho fatto una ricerca, e non ho visto alcun avviso o qualcosa sulle nuove schede aperte quando l'ho provato.

+0

aggiunto una schermata per mostrare dove si trova la funzione –

+0

Hai inchiodato. La scheda secondaria salva nella memoria locale l'id dell'hotel e la elimina alla chiusura. La pagina padre raggruppa su localstorage e mostra/nasconde il div dei rispettivi hotel elencati come risultati. Grazie mille; e benvenuti allo stack overflow. –

Problemi correlati