2011-08-24 50 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

其实在代码中有一个错误,':'而不是';'在'重定向'之后。解决这个问题时它工作吗? –

相关问题