所以我使用onbeforeunload事件來關閉從我的父窗口打開的任何子窗口(圖像)。我正在使用的代碼是舊的,父窗口爲不同的操作做了很多後備,所以我跟蹤服務器端的圖像,並在需要時將onbeforeunload屬性添加到主體。使用onbeforeunload的不可靠結果
當要關閉窗口時,服務器端代碼將編寫一個腳本,該腳本只需使用字符串參數調用Javascript函數。 Javascript工作正常,問題是它並不總是受到打擊。
我的服務器端代碼如下所示:
private void CloseAllChildren()
{
// some code to retrieve image window names...
string script = "closeAllChildren('imagewindowname1,imagewindowname2,etc');";
_body.Attributes.Add("onbeforeunload", script);
}
當被觸發close事件時調用close方法:
private void Close()
{
// A bunch of code...
// close the window after all folders have been routed
CloseAllChildren();
this.Response.Write(FolderView.WindowClose);
}
我什麼都不知道了電腦是隨機的,但我的結果似乎沒有遵循任何形式。有時候它會碰到Javascript並且完美地工作,有時它在相同的測試條件下從不會碰到Javascript。我假設有某種競爭條件,但我不知道如何檢測或修復它。有沒有人有這方面的經驗或更好的方式?就像我說的,代碼是舊的,這是功能的一個小的補充,所以我不想改變任何當前的框架。
在此先感謝。
你應該發佈JavaScript端的事件處理程序的樣子......哦,等等;我猜你是那樣做的。但那個「closeAllChildren」函數呢?這看起來像什麼(JavaScript版本,而不是創建對它的調用的服務器端代碼)。 – Pointy 2012-03-26 15:05:44
Javascript只是關閉窗口的基礎上,告訴窗口'的功能closeAllChildren(names){ if(names!=「」)var openedWindows = names.split(','); while(openedWindows.length> 0){var _name = openedWindows.pop(); var win = window.open(winName,winName); win.close(); } } }'這不是問題,但如果這個方法被擊中,它的工作沒有失敗。我的問題在於它並不總是受到打擊。 – MGraffia 2012-03-26 16:09:52
此外,我在這裏發佈相當新,我不知道如何在評論中添加代碼塊。 – MGraffia 2012-03-26 16:12:08