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

Введение

  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. Как со своей веб-страницы открыть новую вкладку в отдельном процессе?

Поиск

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

Введение

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

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

Google Chrome также использует совершенно новую систему JavaScript (V8), которая намного быстрее существующих интерпретаторов 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, like Gecko) Chrome/0.X.Y.Z Safari/525.13.

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

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

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

Чтобы помочь браузерам отображать ваше содержание правильно, вы всегда должны указывать информацию о кодировке содержания и символов в верхней части источника своего документа. Если вы используете фреймы или iframes, также укажите кодировку в верхней части источника этих фреймов. Некоторые браузеры (включая 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(). Если вы используете этот метод, например, чтобы указать кодировку в iframes, могут появиться искаженные символы при отображении 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"

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

Чтобы узнать больше по этой теме, ознакомьтесь с документацией консорциума Всемирной паутины на странице 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.

Чтобы открыть новую вкладку в отдельном процессе, выполните следующие действия.

  • Откройте новую вкладку с целевым элементом about:blank.
  • В открывшейся вкладке задайте для переменной opener значение null, чтобы она не могла получить доступ к исходной странице.
  • Перейдите с вкладки about:blank на какой-либо URL, в котором используется домен, порт или протокол, отличный от домена, порта или протокола страницы, создавшей всплывающее окно. Например, если страница, создавшая всплывающее окно, находится в домене http://www.example.ru/:
    • другим доменом будет http://www.example.org
    • другим портом будет http://www.example.ru:8080
    • другим протоколом будет https://www.example.ru

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

Следующий фрагмент кода может использоваться для выполнения всех этих действий:

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

Поиск

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

Когда пользователь вводит отдельное слово в адресную строку, 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.primer.ru, и пользователь внутри этой корпоративной сети вводит project в адресную строку:

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

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

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

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