Najczęściej zadawane pytania dla programistów stron internetowych

Wprowadzenie

  1. Co Google Chrome ma w środku?
  2. Gdzie znajdę informacje dotyczące innych przeglądarek?

Agent użytkownika

  1. Jaki jest ciąg agenta użytkownika dla Google Chrome?

Kodowanie języka

  1. Google Chrome nieprawidłowo wyświetla znaki
  2. Deklaracja kodowania wykorzystująca JavaScript (document.write) nie działa
  3. Google Chrome wyświetla „%B1%C1%C3%E5” zamiast dwóch chińskich znaków

Skrypty i aplikacje sieciowe

  1. Kontrola ActiveX nie ładuje się
  2. JavaScript nie wykonuje się poprawnie

Renderowanie i zachowania przeglądarki

  1. Moja witryna renderuje się w Google Chrome inaczej niż w przeglądarce Internet Explorer
  2. Jak mogę przetestować swoją witrynę w Google Chrome?
  3. Specyfikacja czcionek w zewnętrznym arkuszu stylów nie daje rezultatów
  4. Wyskakujące okienka z mojej witryny nie pojawiają się w Google Chrome
  5. Moja chroniona przez SSL witryna w Google Chrome wyświetla znak wykrzyknika zamiast kłódki
  6. Interfejs API bazy danych HTML5 nie jest obsługiwany w Google Chrome
  7. Jak mogę dostosować wygląd i funkcje skrótów Google Chrome, prowadzących do mojej strony?
  8. W jaki sposób moja strona może otworzyć nową kartę w oddzielnym procesie?

Wyszukiwanie

  1. Wprowadzenie adresu witryny intranetowej prowadzi do strony wyników wyszukiwania zamiast do tej witryny
  2. Jak mogę umieścić wyszukiwanie w mojej witrynie w opcjach wyszukiwania Google Chrome?

Wprowadzenie

1. Co Google Chrome ma w środku?

Google Chrome zawiera wiele funkcji, dzięki którym webmasterzy będą mogli zaoferować swoim użytkownikom lepsze witryny. Google Chrome ma wbudowany program Gears, pozwalający webmasterom na wykorzystanie interfejsów API, takich jak przechowywanie w trybie offline. Oprócz tego Google Chrome umożliwia nadanie aplikacjom sieciowym wyglądu i stylu aplikacji „pulpitowych”, ponieważ użytkownicy mogą uruchamiać Google Chrome ze zminimalizowanym interfejsem, składającym się jedynie z paska tytułowego.

Google Chrome wykorzystuje także najnowszy silnik JavaScript (V8), znacznie szybszy niż obecnie używane interpretatory JavaScript. Oznacza to, że dzięki mniejszym ograniczeniom prędkości i czasu przetwarzania możesz tworzyć bardziej złożone i zasobochłonne aplikacje AJAX. Google Chrome został zbudowany na bazie WebKit, tak więc użytkownicy Google Chrome będą mogli korzystać z funkcji CSS3 dodawanych do WebKit w miarę ich udostępniania.

2. Gdzie znajdę informacje dotyczące innych przeglądarek?

Istnieje wiele innych przeglądarek, z których możesz korzystać. Informacje o najpopularniejszych spośród nich znajdziesz na wymienionych poniżej stronach:

Agent użytkownika

3. Jaki jest ciąg agenta użytkownika dla Google Chrome?

Ciąg agenta użytkownika dla Google Chrome to:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, jak Gecko) Chrome/0.X.Y.Z Safari/525.13.

Google Chrome pracuje na silniku renderowania WebKit, z którego korzystają także inne przeglądarki, na przykład Safari firmy Apple. Witryny internetowe powinny w Google Chrome wyglądać tak samo, jak w innych przeglądarkach opartych na silniku WebKit. Aby kierować na te przeglądarki, szukaj w ciągu agenta użytkownika raczej webkit niż nazw konkretnych przeglądarek (np. Google Chrome lub Safari).

Kodowanie języka

4. Google Chrome nieprawidłowo wyświetla znaki

Aby ułatwić przeglądarkom prawidłowe renderowanie treści, należy zawsze umieszczać informacje o zawartości i kodowaniu znaków na początku w źródle dokumentów. Jeśli wykorzystujesz ramki lub ramki iframe, podaj kodowanie także na początku źródła tych ramek. Niektóre przeglądarki (wśród nich Google Chrome) nie rozpoznają deklaracji kodowania umieszczonej głębiej w dokumencie (na przykład po kodzie CSS lub skrypcie znajdującym się w nagłówku strony).

Przykład właściwego umieszczenia deklaracji kodowania:

<html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
      <script type="text/javascript">
      ... Twój kod JavaScript ...
      </script>
      .......

Sprawdź także, czy Twój serwer sieciowy nie wysyła sprzecznych nagłówków HTTP. Wysyłane przez serwer sieciowy nagłówki mają pierwszeństwo przed wszystkimi deklaracjami tablicy znaków, umieszczonymi na stronie.

5. Deklaracja kodowania wykorzystująca JavaScript (document.write) nie działa

Google Chrome nie odczytuje informacji o kodowaniu zadeklarowanych w document.write(). Jeśli na przykład używasz tej metody dla określenia kodowania w ramkach iframe, po przeprowadzeniu renderowania możesz zobaczyć nieprawidłowe znaki. Zamiast:

frame1.js

document.write("<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">");
      ... inny kod JavaScript ...

...zalecamy użycie:

frame1.html

<html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
      <script type="text/javascript">
      ... Twój kod JavaScript ...
      </script>
      ...

6. Google Chrome wyświetla „%B1%C1%C3%E5” zamiast dwóch chińskich znaków

Google Chrome koduje za pomocą procentów parametry zapytań w obrębie adresu URL. Przed przetwarzaniem danych sprawdź, czy Twoje wykonywane po stronie serwera skrypty poprawnie odczytują zakodowane za pomocą procentów znaki.

Skrypty i aplikacje sieciowe

7. Kontrola ActiveX nie ładuje się

Musisz określić wersję NPAPI dla tej wtyczki.

Format ActiveX jest obsługiwany tylko przez Internet Explorer (oraz przeglądarki oparte na Internet Explorer) dla Windows. Google Chrome, Mozilla Firefox, Apple Safari i inne przeglądarki nie obsługują ActiveX. Zamiast niego wykorzystują Netscape Plugin Application Programming Interface (NPAPI).

8. JavaScript nie wykonuje się poprawnie

Istnieje kilka sposobów na wyświetlenie błędów i zdebugowanie JavaScript w Google Chrome:

  • Konsola JavaScript: kliknij menu Strona i wybierz Programista > Konsola JavaScript. Możesz wówczas wyświetlić błędy w wykonywaniu JavaScript, a także wprowadzić dodatkowe polecenia JavaScript do wykonania.
  • Debuger JavaScript: można go znaleźć w menu Strona > Programista > Debugowanie JavaScript. Debuger wyświetla monity z poleceniami, umożliwiające ustawienie punktu przerwania (breakpoint), a także oferujące wykrywanie źródła (backtrace) i inne funkcje. Aby rozpocząć, wpisz help w wierszu poleceń debugera.

Renderowanie i zachowania przeglądarki

9. Moja witryna renderuje się w Google Chrome inaczej niż w przeglądarce Internet Explorer

Google Chrome wykorzystuje inny silnik renderowania niż Internet Explorer, może więc inaczej wyświetlać witryny sieciowe. Ten sam silnik renderowania (WebKit) wykorzystuje Apple Safari, strony powinny więc wyświetlać się identycznie w obu tych przeglądarkach.

  • Jeśli Twoja witryna nie renderuje się poprawnie w żadnej przeglądarce, sprawdź poprawność kodu HTML oraz CSS, testując je przez http://validator.w3.org/.
  • Jeśli Twoja witryna nie renderuje się poprawnie w Google Chrome lub Apple Safari, zgłoś błąd na stronie webkit.org, zgodnie z opisem dostępnym tutaj: http://webkit.org/quality/reporting.html.
  • Jeśli Twoja witryna renderuje się poprawnie w Apple Safari, ale nie w Google Chrome, zgłoś błąd dotyczący Google Chrome na stronie http://code.google.com/p/chromium/issues/list.

10. Jak mogę przetestować swoją witrynę w Google Chrome?

Istnieje kilka narzędzi umożliwiających przetestowanie witryny w Google Chrome:

  • Inspektor sieci
    Prawym przyciskiem myszy kliknij dowolny składnik na stronie, aby uruchomić inspektora sieci. Będziesz mieć możliwość obejrzenia elementów i zasobów powiązanych z klikniętym składnikiem strony, łącznie z widokiem hierarchicznym DOM oraz konsolą JavaScript.
  • Menedżer zadań
    Kliknij menu Strona, a następnie wybierz opcję Programista > Menedżer zadań (lub użyj skrótu klawiaturowego Shift+Esc). Menedżer zadań pokazuje wszystkie procesy uruchomione w przeglądarce Google Chrome oraz zasoby zużywane przez te procesy (pamięć, procesor oraz sieć).
  • Debuger JavaScript
    Wybierz menu Strona, a następnie opcję Programista > Debugowanie JavaScript. Uruchomiony zostanie debuger JavaScript, który można podłączyć do aktywnego procesu.

11. Specyfikacja czcionek w zewnętrznym arkuszu stylów nie daje rezultatów

Sprawdź, czy zewnętrzny arkusz stylów ma poprawnie określoną tablicę znaków oraz typ zawartości. Powinny one wyglądać w następujący sposób: text/css lub text/css;charset=X.

Nie zaleca się określania tablicy znaków dla arkusza stylów w nagłówku HTTP. Zamiast tego należy dodać następującą deklarację na samym początku (bez żadnych znaków poprzedzających, łącznie ze spacjami i znakami podziału wiersza) arkusza CSS:

@charset "xxx"

Zaniedbanie podania informacji o kodowaniu może uniemożliwić prawidłowe parsowanie arkusza stylów.

Aby dowiedzieć się więcej na ten temat, przejrzyj dokumentację World Wide Web Consortium na stronie http://www.w3.org/TR/CSS21/syndata.html#charset.

12. Wyskakujące okienka z mojej witryny nie pojawiają się w Google Chrome

Domyślnym zachowaniem Google Chrome jest minimalizowanie wyskakujących okienek i wyświetlanie tylko ich paska tytułowego w prawej dolnej części okna przeglądarki. Użytkownicy mogą wyświetlić zawartość wyskakującego okienka, przeciągając jego pasek tytułowy w lepiej widoczne miejsce. To sprawia, że wyskakujące okienka ładują się, nie pogarszając funkcjonalności witryn, które wymagają ich do działania. Zapobiega to także zasłanianiu strony przez niepożądane wyskakujące okienka i rozpraszaniu użytkowników.

13. Moja chroniona przez SSL witryna w Google Chrome wyświetla znak wykrzyknika zamiast kłódki

Oznacza to, że na stronie wystąpił problem z mechanizmem SSL. Kliknięcie wykrzyknika w Google Chrome spowoduje wyświetlenie szczegółów tego problemu. Często jest to rezultat umieszczenia na stronie mieszanej zawartości – na przykład strona najwyższego poziomu jest przesyłana przez protokół HTTPS i chroniona przez SSL, ale zawarte są na niej elementy (na przykład grafika, skrypty lub kod CSS) przesyłane przez HTTP. Aby wyświetlana była kłódka, cała zawartość strony musi być przesyłana przez HTTPS.

14. Interfejs API bazy danych HTML5 nie jest obsługiwany w Google Chrome

Zespół Google Chrome planuje wprowadzenie obsługi interfejsu API bazy danych HTML5, a także innych interfejsów API obsługiwanych przez WebKit, w tym trybu offline i roboczych, w przyszłych wersjach.

15. Jak mogę dostosować wygląd i funkcje skrótów Google Chrome, prowadzących do mojej strony?

Użytkownicy Google Chrome mogą tworzyć skróty do każdej strony, wybierając opcję Utwórz skrót aplikacji z menu Strona. Nowe skróty domyślnie zastosują tytuł i ikonę strony, do której prowadzą.

Możesz określić tytuł, opis oraz adres URL dla skrótów Google Chrome prowadzących do Twojej strony, dodając szczegółowe tagi meta w części <head> dokumentów.

Do dostosowania: Tag Przykład
Tytuł skrótu application-name <meta name="application-name" content="Gmail"/>
Opis (stosowany, jeśli jest dostępne więcej miejsca, na przykład w oknie preferencji) description <meta name="description" content="E-mail od Google"/>
Adres URL otwierany po kliknięciu skrótu application-url <meta name="application-url" content="http://www.gmail.com"/>
Ikona skrótu <link rel="icon" href="gmail_32x32.png" sizes="32x32"/>
<link rel="icon" href="gmail_48x48.png" sizes="48x48"/>

Na przykład:

<head>
      <meta name="application-name" content="Gmail"/>
      <meta name="description" content="E-mail od Google"/>
      <meta name="application-url" content="http://www.gmail.com"/>
      <link rel="icon" href=gmail_32x32.png sizes="32x32"/>
      <link rel="icon" href=gmail_48x48.png sizes="48x48"/>
      </head>

Pokazane tagi są bardzo zbliżone do tagów interfejsu API oprogramowania Gears Desktop. Więcej informacji na temat interfejsu API Gears Desktop znajduje się w dokumentacji dotyczącej tego oprogramowania.

16. W jaki sposób moja strona może otworzyć nową kartę w oddzielnym procesie?

Google Chrome ma budowę wieloprocesową, co oznacza, że poszczególne karty działają jako procesy oddzielne od siebie nawzajem, a także od głównego procesu przeglądarki. Jednakże nowe karty otwierane z witryny sieciowej zazwyczaj wykorzystują ten sam proces, aby umożliwić dostęp do nowej karty z oryginalnej strony przy użyciu JavaScript.

Jeśli chcesz, żeby nowa karta otwierała się w oddzielnym procesie:

  • Otwórz nową kartę skierowaną na adres about:blank.
  • Ustaw wartość zmiennej opener nowo otwartej karty jako null, aby nie miała dostępu do strony oryginalnej.
  • Ustaw przekierowanie z about:blank na dowolny adres URL w domenie, port lub protokół inne niż strona, z której otwierane jest wyskakujące okienko. Jeśli na przykład strona otwierająca wyskakujące okienko znajduje się pod adresem http://www.example.com/:
    • inną domeną będzie http://www.example.org
    • innym portem będzie http://www.example.com:8080
    • innym protokołem będzie https://www.example.com

Google Chrome rozpozna te czynności jako wskazówkę, że stara i nowa strona powinny zostać potraktowane oddzielnie i postara się załadować nową stronę w oddzielnym procesie.

Wszystkie te kroki można wykonać, wykorzystując następujący fragment kodu:

var w = window.open();
      w.opener = null;
      w.document.location = "http://innastrona.pl/index.html";

Wyszukiwanie

17. Wprowadzenie adresu witryny intranetowej prowadzi do strony wyników wyszukiwania zamiast do tej witryny

Kiedy użytkownik wprowadzi pojedyncze słowo w pasku adresu, Google Chrome przeprowadza wyszukiwanie tego słowa i zwraca wyniki, używając domyślnej wyszukiwarki tego użytkownika. W tym samym czasie Google Chrome wysyła zapytanie HEAD dla http://słowo, aby sprawdzić, czy jest to prawidłowa witryna sieciowa. Jeśli Google Chrome otrzyma odpowiedź z kodem HTTP/2xx (na przykład HTTP/200 OK), użytkownik zostanie zapytany, czy chce odwiedzić tę witrynę. Kliknięcie linku do strony z okna monitu spowoduje ustawienie tej witryny jako domyślnego celu dla danego słowa dla przyszłych zapytań.

Google Chrome wyświetli monit także jeśli otrzyma w odpowiedzi:

  • kod HTTP/401 lub HTTP/407
  • przekierowanie HTTP/3xx prowadzące do strony zwracającej jeden z powyższych kodów

Sprawdź, czy Twój serwer prawidłowo odpowiada na zapytania HEAD dla danej strony, a nie jedynie na zapytania GET.

Jeśli na przykład strona znajduje się pod adresem http://projekt.intranet.example.com, a użytkownik z sieci korporacyjnej wprowadza w pasku adresu projekt:

  • Google Chrome zwróci wyniki wyszukiwania dla słowa projekt
  • W tym samym czasie Google Chrome sprawdzi, czy http://projekt to prawidłowa witryna sieciowa. Jeśli tak,
  • Pojawi się monit pytający użytkownika, czy chce odwiedzić witrynę http://projekt
  • Kiedy użytkownik kliknie link do http://projekt, Google Chrome ustawi http://projekt jako stronę docelową przy wszystkich przypadkach wpisania słowa projekt w pasku adresu w przyszłości

Użytkownicy mogą obejść domyślne zachowanie (wyszukiwanie), wpisując projekt/ lub http://projekt, albo wybierając w pasku adresu projekt/ zamiast Wyszukaj projekt.

18. Jak mogę umieścić wyszukiwanie w mojej witrynie w opcjach wyszukiwania Google Chrome?

Dostarczając dokument z opisem OpenSearch (OSDD), umożliwiasz Google Chrome umieszczenie Twojej witryny na liście wyszukiwarek w przeglądarce. Więcej informacji na temat OpenSearch znajdziesz na stronie http://www.opensearch.org.