Скрытый iFrame: не показывать в истории [jQuery] - PullRequest
4 голосов
/ 16 мая 2011

Я добавил загрузки ajax-файлов на свой сайт довольно давно, используя скрытый iFrame. Я использую jQuery на своем сайте, и у меня все работает очень быстро. Однако есть одна проблема, которую мне не удалось устранить: каждый раз, когда я делаю новый запрос ajax в моем iFrame, запрашиваемая страница добавляется в историю моих браузеров. Я знаю, что по этой теме было задано немало вопросов, но я не смог найти достаточного ответа.

Мой код jQuery:

$(document).bind('ready', function() {
    // Add the iFrame to the DOM (iFrame is needed because of file uploads).
    $('body').append('<iframe id="post_form" name="post_form" style="display: none;" src="javascript:false"></iframe>');

    // Show forms on click.
    $('a.own, a.sale, a.spotted').bind('click', function(event) {
        // Animate and clear the boxes.
        $('.box').slideFadeOut(300);
        $('form.' + $(this).attr('class') + ':hidden').delay(300).slideFadeIn(300)[0].reset();

        return false;
    });

    // Get the form response (from iFrame because of file uploads).
    $('iframe#post_form').bind('load', function() {
        var response = $(this).contents().find('body').html()

        if (response.length) {      
            $('div#message').html(response).animate({
                opacity: 'show',
                height: 'show',
                borderWidth: '1px'
            }, 300);
        } else {
            $('.box').slideFadeOut(300);
        }
    });
});

В моем HTML-коде я установил целевой атрибут моей формы на #post_form. Я также пытался создать новый iFrame для каждого запроса или вручную установить frame.location, но не смог заставить его работать в сочетании с загрузкой файлов. Кто-нибудь может помочь?

Спасибо!

1 Ответ

0 голосов
/ 17 мая 2011

Я считаю, что установка цели не влияет на историю.Подробности смотрите в этом сообщении: Перезагрузите IFRAME без добавления в историю

...