Dlaczego window.history.go () nie działa z niektórych stron?

0

(edycja: zmieniono większość pytania)

Otrzymałem odpowiedź dotyczącą sposobu przejścia do pierwszej strony karty .

Zasadniczo bookmarklet

  javascript:window.history.go(-(window.history.length - 1))

Działa dobrze ze wszystkich stron, ale z niektórych stron, zwłaszcza tych, które były bezczynne przez długi czas, nie działa.

Czy jest lepszy sposób na użycie tego bookmarkletu?

Pierścień Ø
źródło
Ja też nie używam, ale: co javascript:alert(window.history.length)ci daje? (Wystarczy skopiować i wkleić do paska adresu / lokalizacji okna, w którym załadowano iGoogle.)
Arjan
Daje mi poprawny numer (był 19dla Google News, który odświeża poprzez href = ... [patrz wyżej]). Próbowałem sprawdzić window.onunload i body.onunload, wszystkie one są niezdefiniowane .
Pierścień Ø
Może trochę obniżysz liczbę, lubisz javascript:window.history.go(-5)zobaczyć, co się stanie?
Arjan
Oraz: wszelkie błędy podczas otwierania konsoli Javascript? (Wystarczy wpisać javascript:otwarcie, że - mimo, że nie teraz na moim FF4 beta.)
Arjan
Brak błędu w Firebug. To naprawdę dziwne ...
Pierścień Ø

Odpowiedzi:

0

Spróbowałbym dodać jakąś formę sprawdzania poprawności przekazywanej wartości. Ponadto: mówisz, że nie działa, ale nie mówisz, jak to nie działa (np. „Odświeża bieżącą stronę”; lub „wraca do pierwszej strony plus 1”)

Cribbed from w3:

The go(delta) method causes the UA to run the following steps:

   1. If the argument to the method was omitted or has the value zero, then act as if the location.reload() method was called instead, and abort these steps.
   2. Let delta be the argument to the method.
   3. If the index of the current entry of the joint session history plus delta is less than zero or greater than or equal to the number of items in the joint session history, then the user agent must do nothing.
   4. Let specified entry be the entry in the joint session history whose index is the sum of delta and the index of the current entry of the joint session history.
   5. Let specified browsing context be the browsing context of the specified entry.
   6. Traverse the history of the specified browsing context to the specified entry.
horatio
źródło
„To nie działa” oznacza, że ​​karta przeglądarki w ogóle się nie porusza. Bookmarklet nie działa. Zmiana go(x)z x==-1nie ma żadnego efektu - podczas gdy history.length ma 10. Może Firefox pb ...
Dzwonek Ø