2011-11-21 27 views
20

私はjquery関数を持っており、WebサイトをIframeで開いた後に呼び出す必要があります。"X"秒後にjquery関数呼び出しを行う方法

私はIframeでWebリンクを開こうとしています。開かれた後、私は以下の関数を呼び出す必要があります。 どうすればいいですか?

<a id="various3" href="#"><asp:Button ID="Button1" 
runat="server" Text="Button" OnClientClick="Button2_Click"/></a> 

実はこれは私がいるシンプルなページがある:これは私のボタンはiframe内のリンクを開くことです

<script type="text/javascript"> 
     $(document).ready(function(){ 
      $("#<%=Button1.ClientID%>").click(function (event) { 

      $('#<%=TextBox1.ClientID%>').change(function() { 
       $('#various3').attr('href', $(this).val()); 
      }); 
      $("#<%=Button2.ClientID%>").click(); 
     }); 
     }) 
    function showStickySuccessToast() { 
     $().toastmessage('showToast', { 
      text: 'Finished Processing!', 
      sticky: false, 
      position: 'middle-center', 
      type: 'success', 
      closeText: '', 
      close: function() { 

      } 
     }); 
    } 

    </script> 

:ここ

は私の関数であります enter image description here

これはメッセージです enter image description here

+0

あなただけのonclickを使用することはできませんハンドラ?つまり、iframeがonclickを読み込むと、onclickを実行する関数を設定することはできませんか? – bozdoz

+0

はい、私はそれだけで一度にそれらの両方を点滅させることができます。 – coder

+0

あなたはaspx()を使用しているようです。もしそうなら、質問をaspxとタグ付けしておくべきです。 –

答えて

78

JavaScriptでは、通常のsetTimeoutメソッドを使用できます。あなたの例では

つまり...

setTimeout(function(){ 
    // Do something after 1 second 
    } , 1000); 

、あなたは直接showStickySuccessToastを使用する場合があります。

+0

最初のお返事ありがとうございます。私がこれを行うと、時間間隔を9秒に設定しましたが、一度に両方が点滅します。 – coder

+1

"どちらも"? –

+0

@Stein G. Strindhaug- Iframeとメッセージ。 – coder

2

実際のページを表示できれば、私たちはおそらくあなたを助けることができます。

あなたはインラインフレームがロードされた後にのみ、ボタンをトリガしたい場合、あなたは それがロードされているかどうかを確認またはiframe.onloadを使用することがあります:

<iframe .... onload='buttonWhatever(); '></iframe> 


<script type="text/javascript"> 

    function buttonWhatever() { 
     $("#<%=Button1.ClientID%>").click(function (event) { 
      $('#<%=TextBox1.ClientID%>').change(function() { 
       $('#various3').attr('href', $(this).val()); 
      }); 
      $("#<%=Button2.ClientID%>").click(); 
     }); 

     function showStickySuccessToast() { 
      $().toastmessage('showToast', { 
       text: 'Finished Processing!', 
       sticky: false, 
       position: 'middle-center', 
       type: 'success', 
       closeText: '', 
       close: function() { } 
      }); 
     } 
    } 

</script> 
+0

私の質問を更新しました。私はそれが何であるかを見ることができます!そして、私はfancybox Iframeを使用していますWebページを表示します。 – coder

+0

フレームとのやりとりについてよく分かりませんが、私はクリック機能を$( '#iframeID')に変更するのは危険です。child( '#button')click()? –

+0

実際には、var timer = setTimeout(function()#{%= Button2.ClientID%> ")click();}、9000)と同じように、関数の代わりにボタンに設定されたタイムアウトを与えて動作させました。あなたの貴重な答えに感謝します。私はあなたの提案を試みます。 – coder

関連する問題