2011-05-16 9 views
4

私はかなり前に隠されたiFrameを使用して自分のサイトにajaxファイルのアップロードを追加しました。私は自分のサイトでjQueryを使用しています。私は修正できませんでしたが、問題が1つあります:iFrameで新しいAjaxリクエストを作成するたびに、リクエストされたページがブラウザの履歴に追加されます。私はこの話題に関してかなりの質問がされていることを知っていますが、十分な答えを見つけることができませんでした。隠されたiFrame:履歴に表示されない[jQuery]

私のjQueryコード:私は#post_formに私のフォームのターゲット属性を設定している私のHTMLコードで

$(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); 
     } 
    }); 
}); 

。私はまた、すべての要求に対して新しいiFrameを作成しようとしたり、手動でframe.locationを設定しようとしましたが、ファイルのアップロードと組み合わせて動作させることができませんでした。誰も助けることができますか?

ありがとうございます!

+0

歴史の中にこれらのページを置くことに問題はありますか? –

+0

ブラウザの戻るボタンが壊れてしまい、自分が知らない履歴のページが表示されるのは奇妙です。 – Frog

+0

私が見ている限りでは、あなたは**アヤックスを使用しないでください**あなたは通常の方法でフォームを提出するので、歴史はますます高まるでしょう。フラッシュアップローダを使用すると、履歴に影響を与えるべきではありません。 –

答えて

0

ターゲットを設定しても履歴には影響しません。詳細については、次の記事を参照してください。 Reload an IFRAME without adding to the history

+0

フォームにターゲットを設定しますか?私は家に帰るとすぐにそれを試してみるよ。私はすでにそのポストを見つけましたが、ファイルのアップロードのためにiframe.contentWindow.location.replace()を使用できませんでした。 :( – Frog

+0

jQueryを使ってフォームのターゲットを動的に設定しようとしましたが、問題は解決しません。まだ歴史があります。他のアイデアはありますか? – Frog

関連する問題