![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Witam. Chciałbym zablokować możliwość otworzenia strony w dwóch kartach przeglądarki naraz, czyli tak aby była możliwa tylko jedna. Zapytałem wujka i znalazłem coś takiego http://devpytania.pl/questions/6285/skrypt...w-jednej-karcie i zrobiłem tak jak jest podane, lecz jest mały problem. Odświeżenie strony jest traktowane na otworzenie jej w nowej karcie. Może macie pomysł jak naprawić problem z odświeżaniem lub jakiś inny sposób aby zablokować otworzenie strony w dwóch kartach?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie ma czegoś takiego jak "strona w jednej zakładce". To jest taki sam mit jak blokowanie PPM.
Odświeżanie możesz rozwiązać np. sprawdzenie czy istnieje historia strony, choć nie jestem pewien czy 1. zadziała to na każdej przeglądarce 2. czy strona w zakładce, zawsze jest już zaszyta w historii czy dopiero po przejściu w inny link. -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Możesz też wykorzystać localstorage który dzieli dane pomiędzy zakładkami.
-------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Możesz też wykorzystać localstorage który dzieli dane pomiędzy zakładkami. jak z localstorage sprawdzę czy jest otwarta inna karta? --- Myślałem też aby zaprzęgnąć w to WebSocket i po stronie serwera sprawdzać ile jest połączeń z jednej przeglądarki i w ten sposób blokować, ale niestety nie mogę poradzić sobie z serwerem WS Ten post edytował Mlodycompany 19.02.2013, 11:34:27 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
@viking, za pomocą localStorage raczej nie sprawdzisz ilości otwartych kart.
@Mlodycompany, zainteresuj się Shared Web Workers. Rozwiązanie to pozwala na przesyłanie komunikatów pomiędzy kartami z tej samej domeny. Każda nowa karta na początku rozsyła wiadomość "nowa karta" i w przypadku uzyskania odpowiedzi od istniejącej "ale stara już istnieje...", zamykasz ją. Jeśli odpowiedzi nie ma, nowa karta "wie", że jest jedyną i zaczyna nasłuchiwać komunikatu "nowa karta", na który odpowie "ale stara już istnieje...". I to chyba tyle. [edit] ![]() Ten post edytował sowiq 19.02.2013, 11:40:31 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Jest jeszcze sessionStorage i to chyba spełni zadanie.
Ten post edytował !*! 19.02.2013, 11:45:03 -------------------- Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta). |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
No myślę, że Shared Web Workers rozwiąże ten problem, lecz spotkałem się z dużym problemem, Firefox tego nie dziabie, sypie błędem. Dziwne, bo niby od v16 powinno być wspierane, a jednak... W operze nawet błędu nie zwraca;p Co do sessionStorage to też niezbyt przekonany jestem, ale zaraz wytestuję i się pomyśli
-- Shared Web Workers na chwilę obecną odpada. Sprawdzałem w 6 przeglądarkach i tylko w 1 działało poprawnie, Niestety nie jest to ani Opera, ani Firefox, ani Chrome, lecz nijaka Arora. Tylko w niej uzyskałem zamierzany efekt... Ten post edytował Mlodycompany 19.02.2013, 13:26:17 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 18:19 |