2012-07-07 11 views
5

Mam stronę internetową, która ładuje niektóre dane za pomocą posta jquery co 30 sekund, jQuery post pobierze kotwice w formie zakładki, więc gdy jquery zrobi odświeżenie kotwica zawsze jest umieszczana na pierwszej kotwicy.Przenieś przeglądarkę, aby zakotwiczyć lokalizację, nie powodując odświeżania strony.

Załóżmy, że mam # anchor1, # anchor2 i # anchor3. Jeśli użytkownik przegląda # anchor2 i jquery przeładowuje, domyślnie jest to # anchor1. Przed jquery odbywa się I sprawdzić, które kotwica widz korzysta, a następnie po jquery zakończeniu I następnie wybrać kotwicę, że zostały one patrząc na stosując poniższy kod

document.location.href= "#anchor2"; 

Gdy używam powyższy kod to oczywiście powoduje odświeżenie strony, a następnie wykonuje początkową funkcję document.ready, aby pobrać dane, dzięki czemu czasomierz nigdy nie zostanie wykorzystany, zamiast tego na stałe ciągle przeładowuje jquery, robiąc to co sekundę zamiast używać javascriptu regulator czasowy.

Jak mogę skierować użytkownika na kotwicę, na którą patrzył użytkownik przed przeładowaniem ajax, bez powodowania odświeżania strony.

Dziękujemy za pomoc.

Odpowiedz

13

Użyj właściwości document.location.hash:

document.location.hash = "#anchor2"; 
+0

Dzięki, to wydaje się rodzajem pracy. W tej chwili do testowania zakodowałem mocno nazwę kotwicy '' anchor2'' Wygląda na to, że działa ona po raz pierwszy, gdy funkcja jest wywoływana, ale gdy jquery ładuje dane ponownie, to nie ustawia kotwicy ponownie, po prostu przechodzi na domyślną tak jakby kotwica nigdy nie była ustawiona na – Boardy

+0

, jeśli wykonujesz pełne 'POST/GET' na serwerze, wtedy JavaScript, którego użyjesz do ustawienia' hash' nie będzie działał, ponieważ odpowiedź z serwera ponownie wyrenderuje strona. jeśli jest to częściowe żądanie 'AJAX', to powinno działać tak jak w reklamie ... – xandercoded

+1

Dzięki za twoją pomoc udało mi się sprawić, że działa, ale z jakiegoś powodu muszę wyczyścić hash za pomocą' 'document.location. hash = "" '' zanim ustawię go z rzeczywistą wartością, ale wydaje się działać poprawnie. – Boardy