Для iOS google chrome, когда пользователь нажимает кнопку «Запросить сайт для ПК», что браузер делает, чтобы попытаться открыть сайт для ПК? Я представляю какой-то заголовок на запрос, который ищут сайты, или что-то подобное?
Ответы:
Думаю, разница только в User-Agent:
заголовке в запросе.
Вот заголовки User-Agent, отправленные Chrome на моем устройстве Android:
Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19
Обратите внимание на слово «Mobile» в первом, а также на упоминание системы и устройства Android. Проверяя их, я вижу, что они также предоставляют ложную информацию, а именно X11 и x86_64, чтобы точно соответствовать значению, отправляемому версией Desktop Linux. Хром.
Просто хотел отметить, что Chrome теперь не только изменяет, User-Agent
но и игнорирует исходный метатег области просмотра, если вы «Запросите сайт рабочего стола». Таким образом, больше не потребуется нюхать их User-Agent
, и вы можете рассчитывать на изменение области просмотра, как это делают автоматически большинство отзывчивых сайтов. См. Это изменение для получения дополнительной информации.
Еще одно небольшое отличие состоит в том, что запрос, похоже, был направлен на последний намеренно введенный URL до того, как его переместили какие-либо перенаправители. Например:
Дано: somesite.com обнюхивает агента, видит Android и делает document.location + = "/ m";
Затем: в браузере будет URL somesite.com/m
Но: если вы «Запросите настольный сайт», он изменит User-Agent и повторно запросит с somesite.com
Если только вы не вошли непосредственно по мобильному URL somesite.com/m, в этом случае он просто перезагружает somesite.com/m.
Я ожидал, что это работает с перенаправлениями HTTP 301 и 302, я знаю, что это работает с изменениями document.location (по крайней мере, как описано), и предполагал, что он работает с обновлениями <meta>.
Этот фрагмент javascript будет делать то же самое:
function requestDesktopSite() {
document.getElementsByTagName('meta')['viewport'].content='min-width: 980px;';
}
<button onclick="requestDesktopSite()">Request Desktop Site</button>