2011-08-24 18 views
0

我正在添加下面的一段javascript,但我不想搞亂onclick函數(即將項目添加到分享點列表)的初衷。如何在javascript中使用回調

<script type="text/javascript"> 
    element.removeEventListener('click',redirect(),false) 
    function redirect() 
    { 
     var inputcCtrls = document.getElementsByTagName("input"); 
     for(m=0; m<inputcCtrls.length; m++){ 
      if(inputcCtrls[m].type == 'button' && inputcCtrls[m].value == 'Finish'){   
           window.parent.location = "http://intranet/surveys/Pages/ThankYou.aspx"; window.close(); 
}}} 
    </script> 
+1

您可以使用'addEventListener'和'attachEvent'。有關詳情,請參見http://www.quirksmode.org/js/events_advanced.html –

+0

我試過了,現在我可以添加一個項目到列表中,但它不打開謝謝頁面。 –

+0

你的代碼是錯誤的。但我實際上不明白你真的想做什麼,所以我不能幫你進一步。 –

回答

0

從我個人理解,你有一個按鈕,你要綁定的功能funcOnClick來。

您可以將ID添加到名爲重定向的按鈕,然後執行類似操作。

<script type="text/javascript"> 
window.onload = function(){ 
    var button = document.getElementById('redirect'); 
    button.onclick = funcOnClick; 
} 
</script> 

<button id="redirect">Finish</button> 
+0

實際上,「完成」按鈕是一個將項目添加到調查列表的共享點按鈕。我正在嘗試向該按鈕添加附加功能,或者在用戶點擊該按鈕後,我可以將它們重定向到謝謝頁面。 –

0

更新: Mmh。我忘記了執行事件處理程序的順序不能保證。試試這個(redirect像下面):

var inputcCtrls = document.getElementsByTagName("input"); 
for(m=0; m<inputcCtrls.length; m++){ 
    if(inputcCtrls[m].type == 'button' && inputcCtrls[m].value == 'Finish'){ 
     var input = inputcCtrls[m]; 
     var __orig_handler = input.onclick; 
     input.onclick = function() { 
      __orig_handler(); 
      redirect(); 
     }; 
     break; 
    } 
} 

好吧,也許這是你想要什麼:

function redirect() { 
    window.parent.location = "intranet/surveys/Pages/ThankYou.aspx"; 
} 

var inputcCtrls = document.getElementsByTagName("input"); 
for(m=0; m<inputcCtrls.length; m++){ 
    if(inputcCtrls[m].type == 'button' && inputcCtrls[m].value == 'Finish'){ 
     inputcCtrls[m].addEventListener('click', redirect, false); 
     break; 
    } 
} 

請注意,您必須使用attachEventonclick的IE瀏覽器。

+0

您的代碼重定向到謝謝頁面並繞過「完成」原始事件。 (如何添加attachEvent與您的代碼)? –

+0

嗨菲利克斯。 「完成」按鈕的原始功能正在工作(在調查列表中添加一條記錄)。重定向片仍然無法正常工作。 –

+0

其實在代碼中有一個錯誤,':'而不是';'在'重定向'之後。解決這個問題時它工作嗎? –

相關問題