ASP - Получение сведений о поддерживаемых обозревателем возможностях с помощью модуля настройки клиента
Получение сведений о поддерживаемых обозревателем возможностях с помощью модуля настройки клиента
В IIS 5.0 была добавлена новая возможность определения возможностей клиента. Если клиент передает модуль настройки, описывающий его возможности, частью запроса, ASP-страница может создать экземпляр компонента Browser Capabilities, который добавляет новые пары значений, заданные модулем настройки, как свойства.
Например, если клиент передает модуль настройки, содержащий пару «свойство-значение» userLanguage=Spanish, компонент Browser Capabilities добавит свойство userLanguage и установит значение этого свойства равным Spanish.
Важно! Если метатег METADATA# существует в файле, запрошенном клиентом, в результате перенаправления с помощью методов Server.Transfer или Server.Execute, IIS проигнорирует этот тег. Теги METADATA в файле, который действительно содержит перенаправление, однако, будут обработаны нормально.
Приведенный ниже пример демонстрирует использование модуля настройки для определения возможностей обозревателя. Требуются два файла:
- Sendcook.htm запускается на клиенте и использует DHTML для определения списка свойств, которые были установлены для клиента.
- Checkcap.asp создает экземпляр компонента Browser Capabilities и извлекает свойства из файла Sendcook.htm.
Sendcook.htm
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
function stopAllErrors()
{
// No errors should be presented to the user if they occur.
return true;
}
window.onerror = stopAllErrors;
function window.onload ()
{
oClientCaps.style.behavior = "url(#default#clientCaps)";
bcString = "width= " + oClientCaps.width;
bcString += "&height= " + oClientCaps.height;
bcString += "&bufferDepth= " + oClientCaps.bufferDepth;
bcString += "&colorDepth= " + oClientCaps.colorDepth;
bcString += "&cookies= " + oClientCaps.cookieEnabled;
bcString += "&platform= " + oClientCaps.platform;
document.cookie = "BrowsCap= " + bcString;
}
</SCRIPT>
</HEAD>
<BODY ID="oClientCaps">
</BODY>
<HTML>
Checkcap.asp
<!--METADATA TYPE="Cookie" NAME="BrowsCap" SRC="sendcook.htm"-->
<HTML>
<BODY>
<% Set myBrowsCap = Server.CreateObject("MSWC.BrowserType") %>
<%
Response.write("width= " +myBrowsCap.width + "<BR>")
Response.write("height= " +myBrowsCap.height + "<BR>")
Response.write("bufferDepth= " +myBrowsCap.bufferDepth + "<BR>")
Response.write("colorDepth= " +myBrowsCap.colorDepth + "<BR>")
Response.write("cookies= " +CStr(myBrowsCap.cookies) + "<BR>")
Response.write("platform= " +myBrowsCap.platform + "<BR>")
%>
</BODY>
</HTML>
Дополнительные сведения о смысле проектирования определения возможностей пользователя см. в разделе Возможности клиента.