2011-10-25 25 views
0

我想要一個網站包含一個框架(div將工作以及)在其中的外部頁面,一旦用戶在框架中的頁面上下載文件,我想觸發一個事件。提交下載由表單提交觸發。這可能嗎? 謝謝。 編輯:我可以編寫PHP,ASP,jQuery和一點Java,但我總是樂於學習更多。jQuery(?或任何其他weblanguage),是否有可能看到客戶端是否正在下載文件

我可以將表單的動作替換爲不同的文件,它將POST數據重定向到原始表單動作頁面,但也會收到GET數據。 很抱歉,我可能沒有使用正確的條款。

+0

解決方案取決於如何下載文件...如果下載是由按鈕點擊觸發的,只需在按鈕點擊處理程序內觸發您的事件... –

+0

它是由表單提交觸發的,我相信 – jewetnit

回答

0

當用戶點擊表單上的提交按鈕時,jQuery可以觸發一個函數來運行。

jQuery("#downloadLink").click(function(){alert('user has clicked the download link');}); 

* 注: *當用戶開始下載,一次也沒有下載完成這將執行。

編輯:這不需要訪問外部頁面的代碼,你不必操縱表單的動作。

+0

我應該已經注意到,我無法訪問外部頁面的sourecode – jewetnit

+0

如果您無法訪問要提交的實際表單,則仍然可以使用jQuery點擊處理程序來檢測是否有人單擊表單提交按鈕。如果您想對錶單中的信息做些什麼,那麼當用戶單擊「提交」時,您還可以使用jQuery將其讀出。 – KopfaufAchseln

0

您可以使用一些技巧檢測下載的開始,但不能下載結束。

要檢測下載的結束,您可以讓服務器發送下載幫助。

要檢測啓動,下載頁面首先執行一些JavaScript代碼,告訴您「開始下載」,如window.parent.downloadStarted(),並在父窗口中有downloadStarted()函數。

然後運行後,iframe重定向到下載的實際頁面。

要檢測下載的結束,提供下載的程序必須發出信號。最好的辦法是使用APC並設置一個變量,然後不斷輪詢第二個頁面,檢查變量是否已設置,然後報告回來。

相關問題