Я знаю, что существует масса постов по проблеме ASP: Меню против WebKit в целом, но я не могу найти ту, которая отвечает на мой вопрос.
Я часто вижу людей, рекомендующих два разных метода для исправленияпроблема с ASP:Menu
s в браузерах Apple WebKit (например, Chrome, Safari).Но что на самом деле лучше?В чем разница между этими двумя действиями, кроме целевого пользовательского агента?Единственное различие, которое я обнаружил, заключается в том, что второй также будет работать на событии Page_Load
.Я предполагаю, что одно объективно превосходит другое, но я не знаю разницы между ними.Как работает каждый из них?
Оба идут по методу Page_PreInit()
базовой страницы.
1. Очистите адаптеры браузера.
if (Request.UserAgent.Contains("AppleWebKit"))
{
Request.Browser.Adapters.Clear();
}
2. Изменение цели клиента.
if (Request.UserAgent.Contains("Safari"))
{
Page.ClientTarget = "uplevel";
}
Пользовательский агент по умолчанию для Google Chrome выглядит следующим образом.Он содержит как Safari, так и WebKit, поэтому я сомневаюсь, что целевой пользовательский агент имеет существенную разницу.
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.