2013-04-26 18 views
0

我正在使用ASP.NET MVC和Jquery。我有一個用戶點擊的圖片鏈接。它在一個新窗口中打開了一些東西。Jquery;瞭解子窗口何時加載完畢

Html.ImageLink("createreport", 
       "Report", 
       "GetPDFReport", 
       "?sid=10", 
       Url.Content("~/Content/images/pdf.png"), 
       "Get Report", 
       null, 
       "imagelink", 
       new { target = "_blank" }, 
       true, 
       "reportRetrieved();" 
       ) 

這會爲用戶打開一個新窗口。一旦鏈接被點擊,reportRetrieved函數就會被調用。我有一些清理工作需要在新窗口完全加載後完成。

我可以在reportRetrieved函數中做到這一點,但我無法判斷子窗口是否已完全加載。根據情況,子窗口可能需要2秒鐘的時間才能加載或5分鐘。

那麼有沒有辦法把我的reportRetrieved函數中的東西,將等待子窗口完成加載,然後運行一些代碼?

回答

1

無論是手動打開的窗口和準備事件附加到結果窗口中的文件:

$(window.open("your image url here").document).ready(handler); 

使用您現有的ImageLink的,但其指向與圖像的HTML頁面,而不是隻圖像本身。該頁面可以擁有自己的預處理程序,並使用window.opener回調:

$(document).ready(function() { window.opener.YourMethodHere() })