Часто задаваемые вопросы для веб-разработчиков

Введение

  1. Как устроен Google Chrome?
  2. Где найти информацию о других браузерах?

Клиентское приложение (user agent)

  1. Как выглядит строка user agent в Google Chrome?

Кодировка языка

  1. В Google Chrome неправильно отображаются символы
  2. Определение кодировки с помощью JavaScript (document.write) не работает
  3. В Google Chrome вместо двух китайских иероглифов отображаются символы "%B1%C1%C3%E5"

Сценарии и веб-приложения

  1. Элемент управления ActiveX не загружается
  2. JavaScript выполняется неправильно

Отображение информации и поведение браузера

  1. Мой сайт отображается в Google Chrome не так, как в Internet Explorer
  2. Как протестировать свой сайт в Google Chrome?
  3. Спецификации шрифтов во внешней таблице стилей не вступают в силу
  4. В Google Chrome не появляются всплывающие окна моего веб-сайта
  5. Для моего веб-сайта с защитой SSL в Google Chrome отображается восклицательный знак вместо замка
  6. API базы данных HTML5 не поддерживается в Google Chrome
  7. Как настроить внешний вид и функции ярлыков Google Chrome, указывающих на мою страницу?
  8. Как со своей веб-страницы открыть новую вкладку в отдельном процессе?
  9. Как отключить на своем сайте загрузку URL в Живом поиске браузера Chrome?

Поиск

  1. При вводе адреса веб-сайта сети интранет открывается страница результатов поиска, а не страница сайта
  2. Как добавить функцию поиска по своему сайту в параметрах поиска Google Chrome?

Введение

1. Как устроен Google Chrome?

Google Chrome включает в себя целый ряд функций, управляя которыми веб-мастер может повысить уровень удобства для пользователей. В Google Chrome встроены программные средства Gears, позволяющие веб-мастерам использовать преимущества API, например автономное хранение данных. Кроме того, благодаря Google Chrome ваши веб-приложения ничем не будут отличаться от "настольных" программ, так как браузер можно запустить в режиме с минималистичным пользовательским интерфейсом, когда отображается только строка заголовка.

Google Chrome также использует совершенно новую систему JavaScript (вер.8), которая работает намного быстрее существующих интерпретаторов JavaScript. Это означает, что вы сможете создавать более сложные и детализированные приложения AJAX с меньшими ограничениями по скорости и обработке. И последнее: браузер Google Chrome разработан на основе WebKit, поэтому пользователи Google Chrome смогут пользоваться функциями CSS3, которые будут добавлены в WebKit после официального выпуска.

2. Где найти информацию о других браузерах?

На выбор предлагается целый ряд других браузеров. О наиболее популярных браузерах читайте на следующих веб-сайтах:

Клиентское приложение (user agent)

3. Как выглядит строка user agent в Google Chrome?

Строка user agent в Google Chrome выглядит следующим образом:

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

В Google Chrome используется система отображения WebKit, которая также применяется в других браузерах, таких как Safari от Apple. Веб-страницы должны отображаться в Google Chrome так же, как в других браузерах на основе WebKit. В строках user agent можно искать webkit для работы с этими браузерами, а не определенное название браузера (например, Google Chrome или Safari).

Кодировка языка

4. В Google Chrome неправильно отображаются символы

Чтобы содержание правильно отображалось в браузере, необходимо указывать информацию о кодировке содержания и символов в верхней части исходного кода своего документа. Если вы используете фреймы или окна iframe, также укажите кодировку в верхней части источника этих фреймов. Некоторые браузеры (включая Google Chrome) не распознают описания кодировок, которые указаны внутри документа (например, после CSS или сценария в заголовке вашего документа).

Пример правильного размещения кода:

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <script type="text/javascript">
    ... ваш код JavaScript...
    </script>
    .......

Также убедитесь в том, что ваш веб-сервер не отправляет конфликтующих заголовков HTTP. Заголовки, отправленные веб-сервером, переопределяют любые описания charset вашей страницы.

5. Определение кодировки с помощью JavaScript (document.write) не работает

Google Chrome не распознает информацию о кодировке, указанную в document.write(). Если вы используете этот метод, например, чтобы указать кодировку в iframe, при отображении iframe могут появиться искаженные символы. Вместо:

frame1.js

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

...мы рекомендуем следующее:

frame1.html

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <script type="text/javascript">
    ... ваш код JavaScript ...
    </script>
    ...

6. В Google Chrome вместо двух китайских иероглифов отображаются символы "%B1%C1%C3%E5"

Google Chrome кодирует параметры запроса в URL символами процента. Убедитесь, что ваши сценарии на сервере правильно расшифровывают закодированные в виде процентов символы перед обработкой данных.

Сценарии и веб-приложения

7. Элемент управления ActiveX не загружается

Необходимо определить версию NPAPI подключаемого модуля.

ActiveX поддерживается только в Internet Explorer (и браузерах на основе Internet Explorer) в Windows. Google Chrome, Mozilla Firefox, Apple Safari и другие браузеры не поддерживают ActiveX. Вместо него эти браузеры используют интерфейс программирования приложений подключаемых модулей Netscape (NPAPI).

8. JavaScript выполняется неправильно

Есть несколько способов просмотреть ошибки JavaScript и исправить их в Google Chrome:

  • Консоль JavaScript: нажмите на значок меню Страница и выберите Разработчикам > Консоль JavaScript. Здесь можно просмотреть ошибки при выполнении JavaScript и ввести дополнительные команды JavaScript для выполнения.
  • Отладчик JavaScript: доступен через меню Страница > Разработчикам > Отладка JavaScript; отладчик содержит командную строку, в которой можно установить контрольные точки, обратную трассировку и т.д. Введите help в командной строке отладчика, чтобы начать работу.

Отображение информации и поведение браузера

9. Мой сайт отображается в Google Chrome не так, как в Internet Explorer

В Google Chrome используется не такая система отображения, как в Internet Explorer, поэтому веб-страницы могут отображаться по-другому. Apple Safari использует ту же систему отображения, что и Google Chrome (WebKit), и должен показывать страницы точно также.

  • Если ваш сайт ни в одном браузере не отображается правильно, убедитесь, что используются допустимые коды HTML и CSS, проверив их на странице http://validator.w3.org/.
  • Если ваш сайт неправильно отображается в Google Chrome или Apple Safari, сообщите об ошибке на сайте webkit.org в соответствии с инструкциями на странице http://webkit.org/quality/reporting.html.
  • Если ваш сайт правильно отображается в Apple Safari, но не в Google Chrome, сообщите об ошибке Google Chrome на сайте http://code.google.com/p/chromium/issues/list.

10. Как протестировать свой сайт в Google Chrome?

Существует несколько инструментов, с помощью которых можно протестировать свой веб-сайт в Google Chrome.

  • Веб-инспектор
    Нажмите правой кнопкой мыши на любом компоненте веб-страницы, чтобы запустить веб-инспектор. Вы увидите элементы и ресурсы, связанные с компонентом, на который вы нажали, включая просмотр иерархии DOM и консоль JavaScript.
  • Диспетчер задач
    Выберите значок меню Страница, затем Разработчикам > Диспетчер задач (или нажмите Shift+Esc). В диспетчере задач показываются все процессы, запущенные в Google Chrome, и используемые этими процессами ресурсы (память, процессор и сеть).
  • Отладчик JavaScript
    Выберите значок меню Страница > Разработчикам > Отладка JavaScript. Будет запущен отладчик JavaScript, который можно использовать для отладки запущенных процессов.

11. Спецификации шрифтов во внешней таблице стилей не вступают в силу

Убедитесь, что при обработке внешних таблиц стилей используются правильные параметры charset и content-type. Они должны оформляться как text/css или text/css;charset=X.

Рекомендуется не определять параметр charset для таблицы стилей в заголовке HTTP, а добавить описание в самое начало (без предшествующих символов, включая пробелы и разрывы строк) своей таблицы стилей CSS следующим образом:

@charset "xxx"

Если не указать информацию о кодировке, таблица стилей может быть проанализирована неправильно.

Подробнее см. в документации Консорциума WWW на странице http://www.w3.org/TR/CSS21/syndata.html#charset.

12. В Google Chrome не появляются всплывающие окна моего веб-сайта

По умолчанию Google Chrome сворачивает, а затем показывает только строку заголовка всплывающих окон в правой нижней части окна браузера. Пользователи могут просмотреть содержание всплывающего окна, перетащив строку заголовка на более видное место. Это позволяет отображать всплывающие окна без нарушения работы функций сайтов, которые зависят от этих окон. При этом нежелательные всплывающие окна не отображаются поверх страниц и не отвлекают пользователей.

13. Для моего веб-сайта с защитой SSL в Google Chrome отображается восклицательный знак вместо замка

Это указывает на неполадку при использовании SSL на странице. При нажатии на восклицательный знак в Google Chrome отображаются более подробные сведения о проблеме. Часто причиной неполадок является смешанное содержание страницы. Например, ваша веб-страница верхнего уровня передана по HTTPS и защищена через SSL, но на странице есть элементы (например, картинки, сценарий или CSS), включенные через HTTP. Чтобы отображался значок замка, все содержание должно передаваться по HTTPS.

14. Интерфейс API базы данных HTML5 не поддерживается в Google Chrome

В дальнейшем для Google Chrome планируется включить поддержку API базы данных HTML5, а также других API, поддерживаемых в WebKit, включая функции offline и workers.

15. Как настроить внешний вид и функции ярлыков Google Chrome, указывающих на мою страницу?

Пользователи Google Chrome могут создать ярлыки для любой веб-страницы, выбрав Создать ярлыки приложения в меню Страница. По умолчанию в новых ярлыках используется заголовок и значок той страницы, на которую они указывают.

Можно определить заголовок, описание и URL ярлыков Google Chrome, которые указывают на вашу страницу, вставив определенные метатеги в раздел <head> вашего документа.

Настраиваемый элемент Тег Пример
Заголовок ярлыка application-name <meta name="application-name" content="Gmail"/>
Описание (при наличии места, например, на панели настроек) description <meta name="description" content="Подход Google к электронной почте"/>
URL, открываемый при нажатии на ярлык application-url <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>
    <meta name="application-name" content="Gmail"/>
    <meta name="description" content="Подход 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>

Эти теги соответствуют тегам Gears Desktop API. Подробнее см. в документации по Gears Desktop API.

16. Каким образом веб-страница открывает новую вкладку в качестве отдельного процесса?

Google Chrome имеет многопроцессную архитектуру. Это означает, что вкладки могут запускаться в виде отдельных процессов, не влияющих на другие процессы, а также на основной процесс браузера. Заметим, что новые вкладки, открытые с веб-страницы, обычно открываются в том же процессе, поэтому исходная страница может получить доступ к новой вкладке, используя JavaScript.

Однако Google Chrome будет искать указания для открытия новых вкладок в отдельных процессах при открытии другого сайта в новой вкладке.

Самый простой подход – это ссылка на другой веб-сайт с перенаправлением в новое окно без передачи данных об источнике ссылки. Google Chrome распознает это как указание изолировать новую страницу от исходной, поэтому загружает новую страницу как отдельный процесс. Например,

<a href="http://differentsite.com" target="_blank" rel="noreferrer">Открыть в новой вкладке и в новом процессе</a>

Если новая вкладка должна открываться в новом процессе с передачей данных об источнике ссылки, можно использовать следующий алгоритм JavaScript.

  • Откройте новую вкладку с адресом about:blank.
  • Задайте для переменной opener открытой вкладки значение null, чтобы исходная страница стала недоступной.
  • Перенаправьте вкладку about:blank на веб-сайт, отличный от исходной страницы.

Например:

var w = window.open();
w.opener = null;
w.document.location = "http://drugoi-sait.ru/index.html";

Эти советы действительны только для URL, которые расположены на другом домене или используют другой протокол, нежели страница, на которой вызывается всплывающее окно. Например, если страница, создавшая всплывающее окно, находится в домене http://www.example.com/:

  • другим доменом будет являться http://www.example.org или http://www.example2.com;
  • другим протоколом будет https://www.example.com.

17. Как отключить на своем сайте загрузку URL в Живом поиске браузера Chrome?

Если у пользователя Google Chrome включена функция Живой поиск, большинство веб-страниц будут загружаться во время ввода адреса в адресную строку еще до нажатия пользователем клавиши Enter.

При наличии прав администратора веб-сайта вы можете запретить использование этой функции на своем веб-сайте.

  • Запрашивая сервер вашего веб-сайта, Google Chrome отправляет следующий заголовок:
    X-Purpose: instant
  • При его обнаружении должен возвращаться код статуса HTTP 403 ("Forbidden").
  • При получении этого кода Google Chrome добавит ваш сайт в черный список на стороне клиента. Данный список будет действовать до завершения пользователем сеанса просмотра.

Поиск

18. При вводе адреса интранет-сайта открывается страница результатов поиска, а не интранет-сайт

Когда пользователь вводит отдельное слово в адресную строку, Google Chrome выполняет поиск по запросу и возвращает результаты, используя поисковую систему пользователя по умолчанию. В то же время Google Chrome посылает запрос HEAD для http://zapros, чтобы узнать, существует ли такой сайт. Если Google Chrome получит ответ HTTP/2xx (например, HTTP/200 OK), то пользователь получит предложение посетить сайт. Нажатие на предложенный адрес веб-сайта установит его в качестве цели по умолчанию для этого поиска для будущих запросов.

Google Chrome также покажет эту подсказку при:

  • получении ответа HTTP/401 или HTTP/407
  • перенаправлении HTTP/3xx, которое прерывается страницей с одним из вышеуказанных ответов

Вы должны убедиться, что ваш веб-сервер правильно отвечает на запросы HEAD, а не только на запросы GET для страницы.

Например, если сайт находится по адресу http://project.intranet.example.com и пользователь внутри этой корпоративной сети вводит project в адресную строку:

  • Google Chrome возвратит результаты поиска для запроса project
  • В то же время Google Chrome проверит наличие сайта http://project. Если он существует,
  • Пользователь получит предложение посетить сайт http://project
  • Как только пользователь нажмет на http://project, Google Chrome установит адрес http://project в качестве цели для всех дальнейших вхождений слова project в адресной строке

Пользователи могут переопределить (поисковое) поведение по умолчанию, введя project/ или http://project либо выбрав запись адресной строки, в которой написано project/ вместо Poisk project.

19. Как добавить функцию поиска по своему сайту в параметрах поиска Google Chrome?

Предоставив документ описания OpenSearch (OSDD), вы позволите Google Chrome включать свой сайт в список поисковых систем в браузере. Подробнее об OpenSearch см. на сайте http://www.opensearch.org.