Fancybox портит историю браузера с настройкой iframe - PullRequest
2 голосов
/ 09 марта 2011

Я использую Fancybox 1.3.4 с настройкой iframe, которая загружает на другую страницу в iframe.

$(".fancy").click(function(){
    return false;
});

$(".fancy").fancybox({
    type: 'iframe',
    width: 800,
    height: 500,
    overlayOpacity: 0.8,
    overlayColor: '#222',
    showNavArrows: false
});

Ссылка выглядит следующим образом

<a id="map_link" class="fancy" href="http://example.com/page">link</a>

Проблема в том, что всякий раз, когда я нажимаю на ссылку, он правильно загружает iframe, но также заставляет родительскую страницу снова перемещаться к себе.Таким образом, это означает, что если я открою и закрою fancybox 10 раз, у меня будет еще 10 элементов в истории браузера родительской страницы.Протестировано во всех браузерах и у меня возникли проблемы по всем направлениям.

РЕДАКТИРОВАТЬ : Контрольный пример
Это в значительной степени имитирует то, что у меня есть на моем сайте, fancybox-wise.Использование jQuery 1.5, последней версии fancybox и тестирование в Chrome 11 и Firefox 3.6.14.Когда я нажимаю на ссылку 5 раз, в истории посещений я получаю 5 экземпляров сайта с родительским фреймом.

1 Ответ

1 голос
/ 19 марта 2011

Если вы откроете распакованный исходный код для FancyBox , вы найдете

content.find('iframe').attr('src', isIE6 && /^https/i.test(window.location.href || '') ? 'javascript:void(false)' : 'about:blank');

в строке 946. Если вы это прокомментируете, это устранит возникшую проблему. Что касается того, что он делает, то похоже, что он имеет отношение к функции IE . Однако я не уверен, зачем это нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...