В разделе «Сайты Top Sites» Safari изображение iCloud.com отображает логотип вместо экрана входа в систему, как вы можете видеть ниже. Обычно на Top Sites отображается только изображение загруженной веб-страницы (и загруженная страница выглядит не так). Вы хоть представляете, как они это сделали? Я не мог найти ничего в документации Apple. Спасибо за вашу помощь.Предварительный просмотр сайтов Safari
ответ
Вот как это делается на ICloud, чтобы показать Top Sites конкретные превью: (отредактированный для форматирования)
if (window.navigator && window.navigator.loadPurpose === "preview") {
window.location.href = "http://www.icloud.com/topsites_preview/";
};
Источник : http://blog.raffael.me/post/18565169038/defining-how-your-website-looks-like-in-safari-topsites
+1 'потому что все имеет смысл. Я также проверил, и этот скрипт находится на вершине сайта icloud. Достаточно создать под шаблоном предварительного просмотра topsites_preview/', и все должно работать. Спасибо, Phil;) –
Я считаю, что они программно захватить снимок страницы, когда он закончил загрузку. И если вы посмотрите на индикатор выполнения вверху, когда iCloud показывает, что (только логотип iCloud), он закончил загрузку и делает небольшую анимацию.
Веб-сайт никогда не показывает JUST логотип, хотя он никогда не будет такого размера. –
Я думаю, что они сделали это специально для их службы iCloud, они просто проверяют, является ли домен доменом icloud, и если он отображает этот логотип вместо обычного предварительного просмотра сайта.
Устройства Apple touch могут искать предварительно созданные изображения на вашем веб-сервере. Я знаю, что он может запросить для этих изображений:
- яблочно-сенсорный значок-114x114-precomposed.png
- яблочно-сенсорный значок-144x144-precomposed.png
- яблочно-сенсорный значок-57x57 -precomposed.png
- яблочно-сенсорный значок-72x72-precomposed.png
Если вы проверить Souce из iCloud.com вы заметите, что будет иметь <link />
элементы, указывающие на эти ресурсы тоже (потому что они «нет в корне»):
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="/system/cloudos/en-us/1JPlus21/source/resources/images/apple-touch-icon-114x114.png">
Я просто угадываю здесь, но, возможно, сафари ищут те же изображения, что и в верхней части сайта.
Подробнее об этих типах изображений можно найти здесь
http://theksmith.com/technology/howto-website-icons-browsersdevices-favicon-apple-touch-icon-etc/
В последнее время я сделал несколько сайтов с прикрепленными иконами iPhone, поэтому, если вы ответите правильно, вместо печатного экрана я должен получить специальную иконку, но после добавления сайта на верхние сайты я не получил ничего, кроме файла prints моего сайта. Поэтому я думаю, что это что-то еще или что-то еще. –
@ Sófka выглядит, как Фил понял это (если это работает) Я просто догадывался :) – sg3s
Yep;) Я проверил эту теорию, потому что это было интересно;) Всегда хорошо попробовать! Cheers;) –
На самом деле, Safari не ищет тег <link>
или что-то еще. Существует два dfifferent вещь, которую мы можем использовать:
HTTP-заголовки входящего запроса в PHP.
Свойства объекта
window
в JavaScript.
Два способа работают очень хорошо, и вы можете использовать любой из них или даже их обоих, если хотите быть уверенными.
PHP:
Если проверять заголовки HTTP, то мы увидим, что, когда это Safari Top Sites Preview который посылает запрос, есть X_PURPOSE
, который установлен в preview
. Тогда вы должны написать в обычном веб-сайте:
if($_SERVER["HTTP_X_PURPOSE"]=="preview")
{
header("Location:thumbnail link");//Redirect to the thumbnail.
}
//Display the normal website.
И вы можете добавить на странице, где есть миниатюра:
if($_SERVER["HTTP_X_PURPOSE"]!="preview")
{
header("Location:normal link");//Redirect to the normal website.
}
//Display the thumbnail.
Так что вы не можете увидеть миниатюру, кроме как от Safari Предварительный просмотр сайтов.
JavaScript:
window.navigator.loadPurpose
имеет значение preview
, если это Safari Top Sites Preview который пытается открыть веб-сайт. Но window.navigator
не существует, если он находится в нормальном режиме. Таким образом, когда вы проверяете это значение, вам нужно проверить само существование этого свойства, а также его правдоподобие. Тогда это код для обычного сайта:
if(window.navigator&&window.navigator.loadPurpose==="preview")
{
window.location.href="thumbnail link";//Redirect to the thumbnail
}
И на страницу с миниатюрами:
if(!window.navigator||window.navigator.loadPurpose!=="preview")
{
window.location.href="normal link";//Redirect to the normal website
}
Маленькая хитрость от меня:
Если вы действительно хотите поставить a <link>
бирка вы можете написать:
<link rel="safari-preview" href="thumbnail link" />
А потом в конце добавить головной секции:
<script>for(var i=0,link=document.getElementsByTagName("link"),l=link.length;i<l;i++)if(link[i].getAttribute("rel")==="safari-preview"&&window.navigator&&window.navigator.loadPurpose==="preview")window.location.href=link[i].getAttribute("href");</script>
Источники:
- 1. Предварительный просмотр изображения не работает в Safari
- 2. Предварительный просмотр кода в Safari? [Пользователи Mac]
- 3. Предварительный просмотр видео iOS
- 4. Objective-c Предварительный просмотр веб-сайтов, как в приложении facebook
- 5. Как воссоздать предварительный просмотр изображений с внешних сайтов?
- 6. Основы веб-сайтов, не показывающие предварительный просмотр машинописных текстов
- 7. Настройка нового распределенного кэша для лазурных веб-сайтов Предварительный просмотр
- 8. Предварительный просмотр страницы Sitecore не работает с настройкой нескольких сайтов
- 9. Предварительный предварительный просмотр - выбор дизайна
- 10. Предварительный просмотр веб-дизайна IPhone
- 11. Предварительный просмотр камеры. Предварительный просмотр становится пиксельным и искаженным.
- 12. Предварительный просмотр в asp.net
- 13. C# Предварительный просмотр
- 14. iPhone - предварительный просмотр изображения
- 15. Alfresco - Предварительный просмотр сети
- 16. Cocoa screensaver Предварительный просмотр
- 17. WinRT XamlControl Предварительный просмотр
- 18. Предварительный просмотр Git push
- 19. Django admin Предварительный просмотр
- 20. Предварительный просмотр содержимого UIScrollView
- 21. Предварительный просмотр веб-страницы
- 22. Предварительный просмотр Jcrop сдвинут?
- 23. Как скрыть предварительный просмотр?
- 24. Предварительный просмотр камеры искажен
- 25. Предварительный просмотр Umbraco
- 26. Unite.vim Предварительный просмотр навигации
- 27. OpenFileDialog скрыть предварительный просмотр
- 28. Получить предварительный просмотр изображения?
- 29. Предварительный просмотр изображения
- 30. Предварительный просмотр Yii2
Есть что-то, чего я не понимаю: цель щедрот состояла в том, чтобы иметь лучший ответ, чем тот, который у Фила и с более подробной информацией. Тогда почему ты предложил щедрость Филу, а не мне? – Mageek
@ Mageek Извините, я начал щедрость до того, как Фил ответил, потому что ни один из ответов не был прав. Я очень ценю ваш ответ, но Фил ответил первым. Я дал вам голос. –
Вы подождали до конца щедрости? – Mageek