Главная » Silverlight » Получение информации о браузере

0

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

Информация о браузере доступна в классе Browser In format ion. Он предоставляет четыре строковых свойства, содержащих имя браузера, его версию, тип операционной системы и строку пользовательского агента — длинную строку, содержащую техни­ческие подробности браузера (например, в Internet Explorer в нее включены текущие установленные версии .NET Framework). Кроме того, булево свойство CookiesEnabled можно использовать для выяснения, поддерживает ли текущий браузер файлы cookie и включены ли они (в этом случае свойство равно true и с помощью класса HtmlPage можно читать и редактировать файлы cookie).

Примечание. Информация, получаемая от класса Browser Information, зависит от того, как браузер представляет себя внешнему миру, и может не отражать истинные параметры браузера. Например, браузер может быть сконфигурирован таким образом, что он будет представляться внешним агентам как браузер другого типа. Этот метод часто используется для обеспечения более широкой совместимости. Следовательно, не очень полагайтесь на информацию, предоставляемую браузером о себе. Если вы создаете код, специфичный для браузеров определенного типа, протестируйте его с разными браузерами, чтобы убедиться в его работоспособности в браузерах разных типов.

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

BrowserInformation b = HtmlPage.BrowserInformation; lbllnfo.Text = "Name: " + b.Name; lbllnfo.Text += "\nBrowser Version: " + b.BrowserVersion.ToStringO ; lbllnfo.Text += "VnPlatform: " + b.Platform; lbllnfo.Text += "\nCookies Enabled: " + b.CookiesEnabled; lbllnfo.Text += "\nOser Agent: " + b.UserAgent;

Рис. 14.1. Информация о браузере

Окно HTML

Надстройка Silverlight предоставляет возможность (довольно ограниченную) управ­лять браузером посредством класса HtmlWindow. Этот класс содержит два метода, по­зволяющих запускать навигацию, — Navigate () и NavigateToBookmark ().

Метод Navigate () вынуждает браузер открыть другую страницу HTML. Пере­груженную версию метода Navigate () можно использовать для задания целевого фрей­ма. При вызове метода Navigate () текущее приложение Silverlight закрывается. Вызов метода Navigate () аналогичен вводу нового адреса URL в адресной строке браузера.

Метод NavigateToBookmark () прокручивает текущую страницу до заданной заклад­ки (bookmark). Закладкой служит элемент <а> с атрибутом id или именем.

<а id="myBookmark">..,</а>

Чтобы перейти к закладке, добавьте символ # перед именем закладки в конце адреса URL.

<а href="page .html#myBookmark">nepeft™ к закладке</а>

Результат показан на рис. 14. I[4].

Извлечь закладку из текущего URL браузера можно в любой момент с помощью свой­ства HtmlWindow.CurrentBuukmarк. Это единственное свойство класса HtmlWindow.

Метод NavigateToBookmark () и свойство CurrentBookmark предоставляют ряд инте­ресных возможностей. Например, закладку можно использовать для сохранения инфор­мации о состоянии страницы. Эта информация является частью строки URL, поэтому она сохраняется в истории браузера и в списке предпочтений (если закладкой отмечена страница с содержимым Silverlight). Сохраненная таким образом информация служит основой высокоуровневой инфраструктуры навигации (см. главу 7).

Источник: Мак-Дональд, Мэтью. Silverlight 3 с примерами на С# для профессионалов. : Пер. с англ. —- М. : ООО «И.Д. Вильяме», 2010. — 656 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии