我如何在javascript中使用回调



我正在添加以下一块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>

据我所知,您有一个按钮要绑定功能funcOnClick

你可以给那个叫做redirect的按钮添加一个ID,然后像这样做。

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

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

注意IE必须使用attachEventonclick

相关内容

  • 没有找到相关文章

最新更新