2011-11-21 85 views
20

我有一個jquery函數,我需要在打開iframe中的網站後調用它。如何在「X」秒後進行jquery函數調用

我想在iframe中打開一個weblink並打開它之後我需要調用下面的函數。 那我該怎麼做?

這裏是我的功能:

<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> 

這是我的按鈕,打開一個IFrame鏈接:

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

其實這是我在簡單的頁面:

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只加載後,你可能 要檢查是否已加載或使用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顯示網頁。 – coder

+0

我不太瞭解與幀交互,但我會冒險:將點擊函數改爲$('#iframeID')。child('#button')。click()? –

+0

其實我通過給按鈕設定時間而不是函數來工作,因爲var timer = setTimeout(function(){$(「#<%= Button2.ClientID%>」)。click();},9000);並且工作得很好。無論如何謝謝你的寶貴回答,我會嘗試你的建議。 – coder