2009-02-12 120 views
0

我在窗体上使用Infragistics网格并处理单元格上的多个客户端事件(例如,单元格单击,单元格编辑之前,单元格更新等)。如何阻止执行进一步的JavaScript事件

在细胞单击事件,我产卵辅助窗口(成功)如下:

var convChartWindow = window.open("conversioncharts/" + currentCell.getValue() + ".html", "chart", "location=0,0, status=1, scrollbars=1, width=" + screen.width + ", height=175");   
convChartWindow.focus(); 

然而,“convChartWindow”不维护的重点,并得到覆盖父窗口。在此之后,我的其他单元事件都没有发生,但似乎有一些运行的Infragistics JavaScript。

在上面的.focus()之后是否有一些内容可以阻止进一步的javascript运行并将焦点放在正确的窗口上?

谢谢!

回答

0

我不知道infragistics是什么。病假设它的一些你无法控制的框架。如果我是你,我会尝试以下方法:

1)设置一个超时,在1000毫秒后将焦点移回窗口,或设置超时循环以将焦点设置到所需的窗口。这是一个黑客。

2)找出函数的大火,毁掉你的生活中的事件,在你的代码覆盖这些功能并添加一个标志,该标志将阻止他们这样做邪恶的东西

3)最后,至少阅读: http://www.quirksmode.org/js/events_order.html 有可能是有用的东西在那里

+0

我走了超时,它的工作原理。谢谢! – GernBlandston 2009-02-13 15:32:56

0

让子窗口打开时调用焦点本身。

0

如果在运行你给的代码的功能其他的东西,可以尝试使用:

break; 

后:

convChartWindow.focus(); 
+0

break用于退出循环 – 2013-11-05 12:23:34

4

调用此:

// Prevents event bubble up or any usage after this is called. 
// pE - event object 
function StopEvent(pE) 
{ 
    if (!pE) 
    if (window.event) 
     pE = window.event; 
    else 
     return; 
    if (pE.cancelBubble != null) 
    pE.cancelBubble = true; 
    if (pE.stopPropagation) 
    pE.stopPropagation(); 
    if (pE.preventDefault) 
    pE.preventDefault(); 
    if (window.event) 
    pE.returnValue = false; 
    if (pE.cancel != null) 
    pE.cancel = true; 
} // StopEvent 

这是从这里截取:What is equivalent of 'event.returnValue=false' in Firefox

由Peter Blum编写
请参阅:PeterBlum.com

+0

发送到此函数中的'pE'/ event对象是什么? – GernBlandston 2009-02-12 20:54:10

相关问题