„Jak wymusić …?”

This is the translation. The original web-page (oryginalna strona): https://webtips.dan.info/force.html

Daniel R. Tobias

WSKAZÓWKA: Zrozum, że HTML nie może „wymusić” żadnego działania i nie próbuj ominąć tego ograniczenia; po prostu zirytujesz użytkowników i sprawisz, że Twoja witryna będzie mniej dostępna.

Typowe pytania „początkujących” w grupach dyskusyjnych poświęconych tworzeniu stron internetowych to: „Jak zmusić przeglądarkę użytkownika do…”

  • nie masz przycisku „Wstecz”?
  • czy jeden z linków na stronie działa jak przycisk „Wstecz”?
  • wyeliminować przeszłą historię przeglądania użytkownika, aby użytkownik nie mógł wrócić z mojej witryny?
  • zapisać historię przeglądania użytkownika i wysłać ją do mojej witryny, aby móc ją przeanalizować pod kątem badań marketingowych?
  • przywrócić wszystkie odwiedzane linki z powrotem do koloru nieodwiedzonego łącza?
  • pominąć wskaźnik myszy „ręka”, gdy użytkownik przesuwa kursor myszy nad linkiem, więc może to być ukryty link?
  • mieć rozmiar 640 x 480 bez względu na rozmiar monitora użytkownika?
  • nie ma pasków przewijania bez względu na rozmiar monitora użytkownika?
  • zainstalować moje niestandardowe czcionki w systemie użytkownika, aby moja strona wyświetlała się tak, jak chcę, nawet jeśli użytkownik nie ma jeszcze tych czcionek?
  • zignorować ustawienia i kontrolki zmieniające rozmiar czcionek użytkownika i utrzymać czcionki o tym samym rozmiarze bez względu na to, jak są ustawione?
  • monitować użytkownika o zapisanie pliku na dysku, gdy użytkownik go kliknie, zamiast wyświetlać go w przeglądarce?
  • natychmiast uruchomić plik EXE z mojej witryny, gdy użytkownik go kliknie, zamiast monitować go o zapisanie pliku?
  • wydrukować formularz zamówienia na drukarce użytkownika natychmiast po wejściu na moją stronę?
  • wyświetlać moje strony internetowe tylko jako część zestawu ramek, a nie pojedynczo?
  • przeglądać moje strony internetowe tylko indywidualnie, a nie jako część zestawu ramek?
  • wyłączyć funkcję „Wyświetl źródło”, aby nikt nie mógł ukraść mojego kodu HTML?
  • wyłączyć funkcję „Zapisz jako”, aby nikt nie mógł ukraść moich stron, grafiki i innych elementów?
  • pominąć przycisk „Drukuj”, aby nikt nie mógł ukraść moich stron w formie papierowej?
  • pomijać wszystkie funkcje klikania prawym przyciskiem myszy oraz kopiowania i wklejania w mojej witrynie?
  • wyskakuje ostrzeżenie za każdym razem, gdy użytkownik próbuje opuścić moją witrynę, aby zachęcić go do pozostania?
  • zapisywać pliki pobierane przez użytkownika w wybranym przeze mnie katalogu, a nie w katalogu wybranym przez użytkownika?
  • ukryć okno dialogowe ostrzeżenia, które pojawia się (w niektórych wersjach i konfiguracjach przeglądarki), gdy moja witryna próbuje uruchomić formant ActiveX, ustawić plik cookie, przechodzić między stronami bezpiecznymi i niezabezpieczonymi itp.?
  • wyłączyć JavaScript w przeglądarce użytkownika (aby ukryć wyskakujące okienka niektóre bezpłatne usługi hostingowe dodają)?
  • włącz JavaScript w przeglądarce użytkownika (aby mieć pewność, że wszystkie moje efekty specjalne neato zostaną wyświetlone!)
  • pomijać wyświetlanie i drukowanie adresów URL dokumentów, więc mogę ukryć przed użytkownikiem, jak bezpośrednio pobrać określony dokument i zmusić go do przejścia przez strukturę menu?
  • wyłączyć funkcję „Zakładki” (lub „Ulubione”), aby użytkownik nie mógł dodać mojej strony do zakładek?
  • automatycznie dodać zakładkę do mojej strony, gdy użytkownik odwiedza ją po raz pierwszy?
  • czy mój formularz jest automatycznie przesyłany, gdy użytkownik naciśnie ENTER?
  • czy mój formularz nie jest automatycznie przesyłany, gdy użytkownik naciśnie ENTER?
  • pomijać kropkowane pole, które pojawia się wokół klikalnych obrazów, gdy są zaznaczone (w niektórych wersjach MSIE)?

…a lista jest długa. Wszyscy wyświetlić brak zrozumienia jak działa Web. Nie jest w żaden sposób autor może wymusić coś na użytkownika. Różne konstrukcje HTML mogą sugerować pewne działania ze strony przeglądarki, ale nie może zmusić je.

Prawdą jest, że niektóre nowsze (czasem niestandardowe) konstrukcje i dodatki, zwłaszcza języki skryptowe, takie jak JavaScript, mogą „wymuszać” różne zachowania przeglądarki, przynajmniej po stronie przeglądarki obsługującej taką aktywność. Ale w przeglądarce, która tego nie robi, i takiej, w której takie dodatki są wyłączone przez preferencje użytkownika, nie mogą niczego wymusić. (Niektóre przeglądarki, takie jak Mozilla i Opera, są coraz bardzo dobry w opracowywaniu zaawansowanych ustawień preferencji, aby umożliwić użytkownikom wyłączenie niektórych z bardziej irytujących rzeczy strona może spróbować zrobić, jak pop-under reklam, jednocześnie umożliwiając większości akcesoriów multimedialnych, które mogą rzeczywiście poprawy jakości witryny.)

Nawet gdyby można było wymusić na użytkowniku takie rzeczy, pytanie brzmi: „Dlaczego chcesz to zrobić?” Duża część społeczności użytkowników jest skłonna zirytować się takimi próbami manipulowania przeglądaniem, a zirytowany użytkownik prawdopodobnie nie wróci na twoją stronę internetową. Użytkownicy są przyzwyczajeni do korzystania ze standardowych narzędzi nawigacyjnych, takich jak przycisk Wstecz przeglądarki, i nie spodoba się im, jeśli uda się je jakoś wyłączyć. Użytkownicy mogą korzystać z dowolnej liczby różnych platform maszynowych i rozdzielczości wyświetlania i mogą nie być w stanie lub nie chcieć wymuszać określonej szerokości pikseli tylko w celu dopasowania do źle zaprojektowanych układów, których nie można zmienić na ustawienia użytkownika. Użytkownicy mogą zobaczyć zagrożenie bezpieczeństwa podczas uruchamiania osadzonych apletów i skryptów i odmówią włączenia tych ustawień, więc jeśli witryna wymaga ich nawigacji, po prostu odejdzie.

Brak możliwości wymuszenia zachowania przeglądarki jest z pewnością frustrujący dla programistów, którzy są przyzwyczajeni do tworzenia samodzielnych produktów programowych zaprojektowanych dla jednej konkretnej platformy i które działają całkowicie od początku do końca pod kontrolą programisty, ale jeśli tworzysz dla sieci, Będę musiał stracić ten sposób myślenia i nauczyć się akceptować większą kontrolę, jaką użytkownik sieci ma nad przeglądaniem.

Niektóre uwagi na temat konkretnych prób „wymuszenia”

Oto kilka bardziej szczegółowych komentarzy na temat niektórych rzeczy, które ludzie często chcą „wymusić”:

Zmusza nowe okna przeglądarki do otwierania, zamykania, dostosowywania do określonych wymiarów i braku normalnych elementów sterujących, takich jak przycisk Wstecz

Jeśli JavaScript jest włączony, możesz go używać do robienia takich rzeczy. Ale są to rzeczy, które mogą denerwować wielu użytkowników, ponieważ zmieniają one zwykły interfejs przeglądarki, a jeśli użytkownik ma mało pamięci, może nawet zawiesić lub zawiesić system. Mogą również wprowadzić użytkownika w „pętle”, w których to samo niechciane okienko wyskakujące otwiera się za każdym razem, gdy użytkownik je zamyka, co zwiększa poziom irytacji.

Usuwanie witryn z historii „Przycisk Wstecz”

Bardzo częstym żądaniem jest uniemożliwienie użytkownikowi powrotu do strony za pomocą przycisku Wstecz. Czasami istnieje nawet uzasadniony powód, na przykład zapobieganie dwukrotnemu przesyłaniu elementów formularza lub niedziałaniu lub ochrona bezpieczeństwa danych osobowych wprowadzanych na stronie. Innym razem jest to po prostu nieracjonalne pragnienie ze strony maniaka kontroli, który nie może znieść, że użytkownicy wybierają własną sekwencję przeglądania swojej witryny, a nawet surfowania po stronach innych osób i powrotu do oryginalnej strony później. Tak czy inaczej, nie jest to możliwe. Nawet w przypadku języków skryptowych nie wiem, jak usunąć strony z historii użytkownika. Jeśli potrzebujesz tego w intranecie lub kiosku, w którym kontrolujesz przeglądarkę, możesz poszukać niestandardowej przeglądarki z wbudowanymi takimi funkcjami.

Wymuszanie ustawień czcionki, rozmiaru i koloru czcionki niezależnie od ustawień przeglądarki

Możesz sugerować ustawienia czcionek na różne sposoby, w tym arkusze stylów oraz różne (przestarzałe w HTML 4.0) tagi i atrybuty prezentacji. W niektórych przeglądarkach niektóre z tych ustawień „wymuszają” wybrane ustawienia niezależnie od konfiguracji użytkownika. To zły pomysł, ponieważ może powodować, że strony będą nieczytelne dla użytkowników o specjalnych potrzebach. Na przykład osoby o słabym wzroku mogą chcieć większych czcionek, a osoby ze ślepotą kolorów mogą wymagać ustawienia kombinacji kolorów, które będą dla nich czytelne, nawet jeśli wyglądają dziwnie dla innych. Im więcej autor strony stara się pokonać takie rzeczy, a im bardziej przeglądarka współpracuje, tym mniej czytelna strona będzie dla takich użytkowników.

Wymuszanie pobierania plików, uruchamiania, uruchamiania określonych aplikacji itp.

Nie można tego zrobić. Protokoły internetowe zostały zaprojektowane w celu identyfikacji, za pośrednictwem nagłówków MIME Typ zawartości, jakiego rodzaju treści strumień danych ma, ale nie dokładnie określić, co z nim zrobić. Dokonano tego z dobrego powodu; autor strony nie jest w stanie dokładnie wiedzieć, jaki system ma użytkownik końcowy ani jakie preferencje tego użytkownika dotyczą sposobu postępowania z różnymi rodzajami danych. Niektóre sposoby radzenia sobie z danymi, takie jak automatyczne uruchamianie pliku .exe, stanowią zagrożenie dla bezpieczeństwa, takie jak wirusy i „konie trojańskie”. A jeśli użytkownik ma system Macintosh lub Unix, uruchomienie systemu DOS lub Windows .EXE jest zresztą niemożliwe. ale jeśli pozwolisz użytkownikowi pobrać plik, być może uda mu się umieścić go na dysku i uruchomić na komputerze w korytarzu.

Zasadniczo użytkownicy mogą decydować o tym, jak radzić sobie z różnego rodzaju plikami, wyświetlać je w przeglądarce, wyświetlać je za pomocą zewnętrznej aplikacji pomocniczej lub zapisywać na dysku twardym, zamiast pozwalać, aby witryna wymusiła jedno szczególne zachowanie, które może nawet nie działać w systemie tego konkretnego użytkownika. Dlatego powinieneś upewnić się, że Twój serwer wysyła uczciwy i dokładny nagłówek Content-Type dla każdego wysyłanego elementu.

Jeśli wysyłasz pliki danych, które użytkownik powinien zapisać zamiast przeglądać w swojej przeglądarce, najlepszym typem MIME do użycia jest application/octet-stream; zazwyczaj powoduje to wyświetlenie okna dialogowego „zapisz”. Nie jest to „wymuszone” (użytkownik może skonfigurować przeglądarkę, aby robiło coś innego z tego rodzaju danymi), ale jest to zwykłe działanie, i jest to najbliższe „wymuszenie na przeglądarce zapisania pliku”. Ale nie możesz wymusić zapisania katalogu lub nazwy pliku, chociaż przeglądarki zazwyczaj uzyskują nazwę z ostatniej części adresu URL (chociaż mogą się różnić w irytujący sposób, czasem kończąc się dziwnymi nazwami plików w przeciwieństwie do zamierzonych).

Zawsze możesz zachęcić użytkownika do korzystania z funkcji przeglądarki w celu zapisania pliku na dysku, takich jak kliknięcie prawym przyciskiem myszy w Netscape lub MSIE, które działają bez względu na typ używanego MIME lub sposób skonfigurowania przeglądarki do obsługi tego typu.

Pomijanie ostrzeżeń w oknach dialogowych

Może się nie podobać, że niektóre przeglądarki wyświetlają „Ostrzeżenia o zagrożeniu bezpieczeństwa”, gdy witryna próbuje ustawić plik cookie, uruchomić aplet lub formant ActiveX, przejść z bezpiecznych (zaszyfrowanych) na niezabezpieczone strony i ponownie, lub inne działania, które niektóre przeglądarki, ostrzegaj przed niektórymi ustawieniami konfiguracji. Niektórzy autorzy nie lubią tego tak bardzo, że pytają, czy jest jakiś sposób na wymuszenie wyłączenia takich ostrzeżeń. Dobrze, jeśli autor Web mógłby zrobić, że nie będzie sprzeczna z celem tych ostrzeżeń o możliwych zagrożeniach bezpieczeństwa? Zejdź na ziemię!

„Ukrywanie” kodu źródłowego strony

Jest to prawdopodobnie najczęstsze żądanie „Jak wymusić…” w grupach dyskusyjnych. Ludzie mają przesadne wrażenie wartości swojego kodu HTML i chcą chronić go przed „kradzieżą”. Ale nie ma sposobu, aby ukryć kod źródłowy HTML przed użytkownikiem. Przeglądarka użytkownika musi otrzymać cały kod źródłowy HTML, aby wyświetlić stronę, więc bez względu na przebiegłe techniki, których autor używa do ukrywania kodu, musi on być jeszcze możliwy do przeanalizowania przez przeglądarkę, a zatem nie jest zbyt trudny dla żadnego w połowie inteligentny użytkownik, aby zmienić się w coś czytelnego.

Jedną ze wspaniałych rzeczy w sieci jest to, że „nowicjusze” mogą się wiele nauczyć o tworzeniu stron WWW, patrząc na kod źródłowy stron. To jeden ze sposobów, którego nauczyłem się w pierwszej kolejności. Dzięki temu zobaczysz wiele przykładów (zarówno dobrych, jak i złych) technik tworzenia stron internetowych, które mogą pomóc w tworzeniu stron tak ładnych jak strony profesjonalistów. Luki amatorów/profesjonalistów i początkujących/ekspertów są znacznie mniejsze w Internecie niż w innych mediach i być może z chęci poszerzenia tej luki niektórzy „profesjonaliści” chcą znaleźć sposób na ukrycie swojego kodu źródłowego. Ale nadal nie da się tego zrobić.

Podobnie, nie ma sposobu, aby powstrzymać kogoś przed drukowaniem, dodawaniem zakładek lub linkowaniem do Twojej strony. Kiedy publikujesz coś w Internecie, jest to uczciwa gra. Nadal masz prawa autorskie do wszystkiego, co umieszczasz w sieci (zgodnie z obowiązującym prawem masz prawo autorskie do wszystkiego, co tworzysz, nawet jeśli nie ma na nim informacji o prawach autorskich) i możesz pozwać kogoś, kto rozpowszechnia jego kopie bez twojego pozwolenie, ale nie można zatrzymać normalnego korzystania z dokumentów przez Internet, gdy są one dostępne w Internecie, co obejmuje także inne witryny zawierające linki do Twojej strony. Jeśli chcesz utrudnić ludziom, myślę, że możesz nadal przesuwać swoje strony, aby każdy, kto prowadzi do jednej z nich, miał błąd 404 „Nie znaleziono następnego dnia”, ale to zirytowałoby twoich legalnych użytkowników przynajmniej tak bardzo, jak każdy, kogo myślisz, „zdziera cię”.

Niektóre osoby, które pytają, jak wyłączyć funkcję „Wyświetl źródło”, nie robią tego, aby zapobiec kradzieży swojego kodu, ale dlatego, że chcą zachować bezpieczeństwo czegoś w swoim kodzie, na przykład osadzonego hasła lub innej rzeczy, która mogłaby być wykorzystywani przez „hakerów”, jeśli o tym wiedzą. W takim przypadku musisz całkowicie przemyśleć swój plan bezpieczeństwa witryny. Nic, co jest obecne w kodzie wysyłanym do przeglądarki, nie jest zabezpieczone przed szpiegowaniem przez użytkowników próbujących „zhakować” twoją stronę, nawet rzeczy skompilowane w aplecie (które mogą być dekompilowane przez różne narzędzia). Musisz przenieść dowolny aspekt witryny, który wymaga bezpieczeństwa, po stronie serwera, a nie po stronie klienta. Serwer musi znajdować się w miejscu, w którym porównywane są hasła, zachowywane są informacje o statusie użytkownika i historii itp., Jeśli chcesz mieć pewność, że żaden z nich nie będzie widoczny ani hakowany przez użytkowników końcowych.

Pomijanie kliknięć prawym przyciskiem i kopiowanie i wklejanie

Jest to ściśle związane z ostatnim; wiele osłupionych osób myśli, że mogą powstrzymać ludzi przed „kradzieżą” zawartości strony, jeśli wprowadzą irytujące skrypty, które tłumią kliknięcia prawym przyciskiem i kopiowanie tekstu. Nie, to nie działa; wyłączanie JavaScript jest trywialne, a wtedy skrypty nic nie robią. Wszystko, co robią, to denerwują zwykłych użytkowników, którzy mają wiele całkowicie rozsądnych rzeczy, które mogliby zrobić przy kliknięciu prawym przyciskiem myszy i kopiowaniu tekstu, takich jak otwieranie linków w nowych kartach lub kopiowanie krótkich fragmentów do użycia (zgodnie z prawem autorskim o dozwolonym użytku) w recenzjach witryn i komentarzach.

Przesyłanie lub nieprzesyłanie formularza za pomocą ENTER

Jest to całkowicie pod kontrolą przeglądarki, a nie autora strony. Większość przeglądarek prześle ENTER, jeśli jest dokładnie jedno pole wprowadzania tekstu, a nie jeśli jest więcej niż jedno pole. Nie można tego zmienić. (Obecność pól wyboru i przycisków opcji nie wydaje się wpływać na zachowanie przeglądarki w tym obszarze).

To „kropkowane pudełko” MSIE

Często zadawane pytanie brzmi: „Jak wyłączyć kropkowane pole, które pojawia się wokół klikalnego obrazu w przeglądarce Microsoft Internet Explorer, gdy jest zaznaczony?” Istnieje „kludgy” sposób wyłączenia tego, poprzez wstawienie zdarzenia JavaScript „onFocus”, które wywołuje funkcję „blur()” w celu usunięcia fokusa z bieżącego obiektu; ale wielu użytkowników będzie zirytowanych, jeśli to zrobisz. Kropkowane pole to funkcja ułatwień dostępu dodana przez Microsoft w celu umożliwienia korzystania z przeglądarki całkowicie z klawiatury bez użycia myszy. Niektórzy użytkownicy wolą surfować w ten sposób lub mają utrudnienia, które utrudniają lub uniemożliwiają nawigację za pomocą myszy. Jeśli użyjesz JavaScript do pokonania tej funkcji, użytkownicy, którzy chcą lub muszą nawigować za pomocą klawiatury, będą zmuszeni wyłączyć JavaScript, aby korzystać z Twojej witryny.

Sala wstydu

Dostosowanie witryny lepiej patrząc na innych stronach, które pokazują, na przykładzie, co nie do zrobienia!

UWAGA: Włączenie miejscu w moim „Sala wstydu” linki powinny nie być zinterpretowane jako dowolny rodzaj osobistego ataku na twórcy witryny, która może być naprawdę wielki człowiek, a nawet atak na powiązanej stronie internetowej jako całości, które mogą być źródłem naprawdę wielki informacji i/lub rozrywki. Przeciwnie, jest to po prostu podkreślić konkretne cechy (zamierzone lub przypadkowe) z tych stron, które powodują problemy, które można było uniknąć poprzez lepsze projektowanie. Jeśli okaże się jednym z Twoich stron jest związana tutaj, nie obrażać; poprawić swoją witrynę tak, że będę musiał zdjąć link!

  • Ta strona została wykonana i usiłował bronić żałosne politykę wyłączania kopiowania i wklejania za pomocą JavaScript… w 2013 roku, byś uwierzył?

Copyright © 1997-2018 by Daniel R. Tobias. All rights reserved.