2012-04-29 12 views
1

私のウェブサイトでiframeを使ってフォームのような他のページのコンテンツを表示している瞬間です。私が持っている問題は、ログインページにあり、ユーザーがiframe内のフォームでログインすると、ログインiframe内の次のページが表示されます。これはまったく役に立たないものです。iframeの代わりにAJAXを使用するにはどうすればよいですか?

AJAXはこれほど柔軟でダイナミックであると聞いたことがありますが、使用方法はわかりません。チュートリアルを見ていますが、これまで表示していないようですページ内のページ。

iframeをAJAXに置き換えるにはどうすればよいですか?事前に

感謝:)

答えて

3

あなたがにあなたのページを配置するコンテナが必要になりますのiFrameを使用されることはありませんので。 AJAXでは、データを保持するために、<div>要素を使用するのが一般的です。また、jQueryやAJAXをサポートする別のJavascriptライブラリは、テスト済みのコードを使って簡単に作業できるようになり、ビジネスロジックに集中することができます。だから、あなたのHTMLに、あなたは、コンテナ要素が必要になります。

<div id="otherpage"></div> 

次に含まれたJavaScriptファイルで、あなたはこのjQueryのを使用することができます。

もちろん
$(document).ready(function() { 
    $('#otherpage').load('otherpage.html', function() { 
     alert('Load was performed.'); 
    }); 
}); 

、それを使用する前に、あなたのことを確認してくださいjQueryも含めてください。 This tutorialは、jQueryを使い始めるのに役立ちます。

+1

感謝を、これは私がやろうとし、そして実際に明確に説明された正確に何であるあなたに感謝:) X – Lissy

+0

私だけこれを見つけてそれが単なる代理人になると思ったいくつかのiframeをレースする。私は私のページとバンにコードをコピーしました!それは初めて完全に働いた。 次に、私の 'otherpage'のボタンをクリックしようとしましたが、うまくいきませんでした。そのボタンはjQueryのビットも操作します。私は不可能にしようとしていますか?それとも、私が紛失している小さな問題なのでしょうか? – TrapezeArtist

+1

誰かがアップしたので、ちょうど今このコメントを4年後に見ている。将来の読者のために、HTMLコンテンツを動的にロードするときは、jqueryバインディングが要素ではなく文書上にあることを確認する必要があります。たとえば、次のようにします:on( 'click'、myHandler); '(my-button ')の代わりに' $(document.on(' click '、' .my-button '、myHandler) –

0

あなたが直面している問題は、他のものよりもajaxに関連しています。

ajaxを介して読み込まれたものではなく、ホストhtmlでjs関数を「プリロード」して、特定のレンダリングhtmlをajaxにロードしてみてください。

次に、準備が整い次第、jbufを "プリロード"するinvoque js関数(基本html /ドキュメントに含まれています)< <を使用してください。 。

・ホープこのヘルプ、よろしく

はこのような何かを試してみてください!。

 

    $(document).ready(function(){ 
     $.ajax(
      url : './your_script.php', 
      context: 'document', 
     ).done(function(data){ 
      $('#your_div').html(data); 
      your_js_function(); 
     }) 
    }); 

    // ---- main html 
    function your_js_function(){ 
     alert('got it!'); 
    }; 

関連する問題