如何在javascript中使用回调

时间:2011-08-24 18:07:59

标签: javascript event-handling

我正在添加以下javascript,但我不想弄乱onclick函数的初衷(即将项目添加到sharepoint列表中)。

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

2 个答案:

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

答案 1 :(得分:0)

更新:嗯。我忘了不保证执行事件处理程序的顺序。试试这个(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浏览。