Jak wyłączyć przycisk WSTECZ przeglądarki (w różnych przeglądarkach)?
asp.net
javascript
priyanka.sarkar
źródło
źródło
Odpowiedzi:
To pytanie jest bardzo podobny do tego jednego ...
Aby to zadziałało, musisz wymusić wygaśnięcie pamięci podręcznej. Umieść następujący kod w kodzie strony za.
źródło
Nie wyłączaj oczekiwanego zachowania przeglądarki.
Spraw, aby Twoje strony obsługiwały możliwość cofnięcia się o jedną lub dwie strony; nie próbuj uszkadzać ich oprogramowania.
źródło
Wymyśliłem mały hack, który wyłącza przycisk Wstecz za pomocą JavaScript. Sprawdziłem to na chrome 10, firefox 3.6 i IE9:
Co to robi?
Z komentarzy:
Ten skrypt wykorzystuje fakt, że przeglądarki traktują to, co następuje po znaku „#” w adresie URL, jako część historii przeglądania. Co to robi: podczas wczytywania strony do adresu URL jest dodawany znak „nr 1”. Po 50 ms „1” jest usuwane. Kiedy użytkownik kliknie „wstecz”, przeglądarka zmienia adres URL z powrotem na taki, jaki był przed usunięciem „1”, ALE - to ta sama strona internetowa, więc przeglądarka nie musi ponownie ładować strony. - Yossi Shasho
źródło
Inni przyjęli podejście, by powiedzieć „nie rób tego”, ale to tak naprawdę nie odpowiada na pytanie autora. Załóżmy tylko, że wszyscy wiedzą, że to zły pomysł, ale i tak jesteśmy ciekawi, jak to się robi ...
Nie możesz wyłączyć przycisku Wstecz w przeglądarce użytkownika, ale możesz sprawić, że aplikacja ulegnie awarii (wyświetli komunikat o błędzie, wymagając od użytkownika rozpoczęcia od nowa), jeśli użytkownik wróci.
Jednym ze sposobów, które widziałem, jest przekazanie tokena do każdego adresu URL w aplikacji i w każdym formularzu. Token jest ponownie generowany na każdej stronie, a po załadowaniu przez użytkownika nowej strony wszystkie tokeny z poprzednich stron są unieważniane.
Kiedy użytkownik ładuje stronę, strona pokaże się tylko wtedy, gdy został do niej przekazany poprawny token (który został podany do wszystkich linków / formularzy na poprzedniej stronie).
Aplikacja bankowości internetowej oferowana przez mój bank wygląda tak. Jeśli w ogóle użyjesz przycisku Wstecz, żadne linki nie będą działać i nie będzie można więcej ładować strony - zamiast tego zobaczysz powiadomienie z informacją, że nie możesz wrócić i musisz zacząć od nowa.
źródło
Chociaż sam szukam odpowiedzi, „Najlepsza praktyka” jest ... nieaktualna ... Tak jak przeglądarki. (Naprawdę przeglądarki to brzydkie skamieniałości)
Najlepszym / najbezpieczniejszym rozwiązaniem byłoby zaimplementowanie przez przeglądarki metody / żądania, w ramach których użytkownik może przyznać stronie możliwość kontrolowania interfejsu.
Czemu? Ponieważ dla mojego obecnego projektu buduję interfejs w 100% zbudowany i kontrolowany w JavaScript .. A przycisk Wstecz nie ma miejsca w moim projekcie, ponieważ nie ma zmiany strony. (Tj. Cholernie szybko i bez migotania stron z powodu odświeżania ... Tak jak w prawdziwej aplikacji!)
Wiem, dlaczego nie ma możliwości „highjack” interfejsu, i rozumiem to. Ale przynajmniej powinniśmy mieć możliwość zażądania tego z przeglądarki! To naprawdę byłaby „najlepsza praktyka” bez niebezpieczeństw związanych z highjackiem.
Ale przeglądarki są przeglądarkami… Nie spodziewam się niczego ekscytującego w tym zakresie.
źródło
Szukałem tego samego pytania i znalazłem następujący kod na stronie. Pomyślałem, że podzielę się tym tutaj:
Jednak, jak zauważyli powyżej użytkownicy, nigdy nie jest to dobra praktyka i należy jej unikać ze wszystkich powodów.
źródło
Jeśli polegasz na technologii po stronie klienta, można to obejść. Na przykład JavaScript może być wyłączony. Lub użytkownik może wykonać skrypt JS, aby obejść twoje ograniczenia.
Domyślam się, że można to zrobić tylko poprzez śledzenie sesji użytkownika po stronie serwera i przekierowanie (jak w Server.Transfer, a nie Response.Redirect) użytkownika / przeglądarki na wymaganą stronę.
źródło
źródło
Było kilka różnych implementacji. Jest rozwiązanie flash i kilka rozwiązań iframe / frame dla IE. Sprawdź to
http://www.contentwithstyle.co.uk/content/fixing-the-back-button-and-enugging-bookmarking-for-ajax-apps
BTW: Istnieje wiele ważnych powodów, aby wyłączyć (lub przynajmniej uniemożliwić 1 krok) przycisk Wstecz - spójrz na Gmaila jako przykład implementujący rozwiązanie hashujące omówione w powyższym artykule.
Google „jak Ajax złamał przycisk Wstecz”, a znajdziesz wiele artykułów na temat testowania użytkowników i zasadności wyłączenia przycisku Wstecz.
źródło
Miałem też ten sam problem, użyj tej funkcji skryptu Java na tagu head lub w, jej 100% działa dobrze, nie pozwoli ci wrócić.
źródło
Wypróbuj ten kod. Pracował dla mnie. Zasadniczo zmienia hash zaraz po załadowaniu strony, co zmienia ostatnią stronę historii, dodając „1” do adresu URL. Więc po naciśnięciu przycisku Wstecz za każdym razem przekierowuje na tę samą stronę.
źródło
Powinieneś używać postów z odpowiednimi wygasającymi i buforowanymi nagłówkami.
źródło
Zamiast próbować wyłączyć przycisk Wstecz przeglądarki, lepiej go wesprzeć. .NET 3.5 bardzo dobrze radzi sobie z przyciskami wstecz (i dalej) przeglądarki. Wyszukaj w Google: „Scriptmanager EnableHistory”. Możesz kontrolować, które akcje użytkownika dodają wpis do historii przeglądarki (ScriptManager -> AddHistoryPoint), a aplikacja ASP.NET otrzyma zdarzenie za każdym razem, gdy użytkownik kliknie przyciski Wstecz / Dalej w przeglądarce. To zadziała dla wszystkich znanych przeglądarek
źródło
Globalnie wyłączenie przycisku Wstecz jest rzeczywiście złą praktyką. Ale w niektórych sytuacjach funkcja przycisku Wstecz nie ma sensu.
Oto jeden ze sposobów zapobiegania niechcianej nawigacji między stronami:
Pierwsza strona (plik
top.php
):Druga strona (plik
secondary.php
):Efektem jest umożliwienie przechodzenia z górnej strony do przodu na drugą stronę iz powrotem (np. Anuluj) przy użyciu własnych linków. Jednak po powrocie na stronę główną przycisk Wstecz przeglądarki nie może przejść do strony dodatkowej.
źródło
Nawet ja miałem wcześniej taką samą sytuację ... i nie miałem żadnej pomocy. spróbuj tych rzeczy, może te będą działać dla Ciebie
w
<head>
tagu strony logowania :w przycisku wylogowania zrobiłem to:
a na stronie logowania skupiłem się na polu tekstowym Nazwa użytkownika w następujący sposób:
mam nadzieję, że to pomoże ... :) niech ktoś mnie nauczy, jak edytować tę stronę ...
źródło
JEŚLI potrzebujesz delikatnie ukryć klawisze delete i backspace w swojej aplikacji internetowej, aby podczas edycji / usuwania elementów strona nie została nieoczekiwanie przekierowana, możesz użyć tego kodu:
źródło
Wypróbuj ten kod. Wystarczy zaimplementować ten kod na stronie wzorcowej i będzie on działał na wszystkich stronach
źródło
Problem z Yossi Shasho kodeksu jest to, że strona jest przewijanie do szczytu co 50 ms. Więc zmodyfikowałem ten kod. Teraz działa dobrze we wszystkich nowoczesnych przeglądarkach, IE8 i nowszych
źródło
Wydaje się, że to zadziałało dla nas.
źródło
źródło