Как упоминает @misorude, невозможно определить, не удалось ли загрузить iframe для межсайтовых запросов.В конце концов я решил покончить с предварительным просмотром сторонних ссылок и выполнить перенаправление следующим образом:
$.fancybox.defaults.afterLoad = (instance, slide) ->
if !slide.redirecting && slide.contentType == 'html'
slide.redirecting = true
message = """<div class="fancybox-error"><p>Redirecting...</p></div>"""
instance.setContent slide, message
window.location = slide.src
Это отобразит хорошее сообщение о перенаправлении, а затем отправит пользователя по этой ссылке через браузер.contentType
- это html
, только если это не image
, video
, map
и т. Д. Из других плагинов медиа-типа.Это означает, что fancybox по-прежнему может без проблем показывать ссылки на YouTube, даже если они основаны на iframe и html.