Fancybox не работает в IE8 — метод onCleanup не поддерживается

Итак, я тестирую fancybox. Работа с этим простым примером (который определен внутри тела:

<link rel="stylesheet" href="../../Content/Scripts/fancybox/jquery.fancybox-1.3.4.css"
type="text/css"/>
<script type="text/javascript" src="../../Content/Scripts/fancybox/jquery.fancybox-1.3.4.js"></script>
<script type="text/javascript" src="../../Content/Scripts/fancybox/jquery.easing-1.3.pack.js"></script>

<script type="text/javascript">
function ShowModal() {
    $.fancybox('<h2>test</h2><p>asdf</p>', {
        'transitionIn': 'fade',
        'transitionOut': 'fade'
    });
}
</script>

Я вызываю функцию ShowModal в другом месте, а также ссылаюсь на jquery в файле head.

Это отлично работает как в Firefox, так и в Chrome, но в IE8 я получаю ошибку js в строке 324, возможно, связанную с методом onCleanup.

У меня раньше была эта ошибка: Uncaught TypeError: Object # has no method 'onCleanup'

Я предположил, что это та же самая ошибка, на которую жаловался IE, я дважды проверил некоторые пути к сценариям, и ошибка исчезла в Chrome, но IE все еще жалуется - может ли кто-нибудь мне помочь?


person Dynde    schedule 16.02.2011    source источник


Ответы (2)


Это было, конечно, потому, что мой тег ссылки не в голове - я серьезно должен перестать думать о зебре, просто потому что я вижу полосы.

person Dynde    schedule 24.02.2011

Относительно этой ошибки (результат currentOpts.onCleanup [undefined] не является функцией в строке 324)

Сегодня я потратил около 4 часов, пытаясь понять это. У меня ДЕЙСТВИТЕЛЬНО была включена таблица стилей fancybox, и я все делал правильно. Оказывается, в FancyBox есть глупая ошибка. Я выяснил причину:

Если какие-либо таблицы стилей с непустым атрибутом title появляются перед Fancybox css, вы получите эту ошибку. Это происходит во всех браузерах.

ВЫДАЕТ ЭТУ ОШИБКУ:

<head>
<title>OH NOES</title>
<link rel="stylesheet" href="/css/mysite.css" type="text/css" media="all" title="Main Styles" charset="utf-8">
<link rel="stylesheet" href="/css/jquery.fancybox-1.3.4.css" type="text/css" media="screen" title="Modal Dialog Support" charset="utf-8">

РЕШЕНИЕ – СДЕЛАТЬ ОДНУ ИЗ ЭТИХ ДЕЙСТВИЙ

1. Нет атрибута title ни в одной таблице стилей, которую вы включаете перед fancybox css.

<head>
<title>THIS WILL WORK</title>
<link rel="stylesheet" href="/css/mysite.css" type="text/css" media="all" charset="utf-8">
<link rel="stylesheet" href="/css/jquery.fancybox-1.3.4.css" type="text/css" media="screen" title="Modal Dialog Support" charset="utf-8">

2. Или сначала включите css fancybox.

<head>
<title>THIS WILL WORK TOO</title>
<link rel="stylesheet" href="/css/jquery.fancybox-1.3.4.css" type="text/css" media="screen" title="Modal Dialog Support" charset="utf-8">
<link rel="stylesheet" href="/css/mysite.css" type="text/css" media="all" title="Main Styles" charset="utf-8">

(Спасибо, Fancybox, за потраченную половину моего дня.)

person Community    schedule 09.06.2011