2009-02-12 117 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

相關問題