2010-06-01 82 views
1

現在我有一個問題如下:如何知道IE文件下載提示何時彈出?

我已經添加了一個div在我的網頁上禁止用戶單擊按鈕,鏈接或字段時,用戶單擊下載按鈕。所以我需要刪除這個div,當IE文件下載提示彈出或當用戶點擊「保存」,「另存爲」或「取消」就可以了。

我該如何達到這個目標?

IE只考慮請。

回答

1

我不認爲有一個回調,絕對不是在所有瀏覽器中。此外,並非所有瀏覽器都會彈出提示 - 這取決於用戶特定的瀏覽器配置;有些可能只是在後臺開始下載。

我建議在一段時間後(根據通常顯示下載框所需的時間猜測)去除DIV,儘管這不是一個非常乾淨的解決方法。

5

其中一種方式,你可以做一個好猜瀏覽器正在處理文件下載。我問這個同樣的問題,TJ克勞德有一個偉大的想法:

What are techniques to get around the IE file download security rules?

實際上,我用現在的想法和它完美的作品。訣竅是讓頁面發送一個「nonce」參數,並返回一個隨機字符串。然後頁面每100毫秒左右開始輪詢document.cookie,檢查該字符串是否在cookie中。

服務器反過來設置一個選定的cookie(與它所謂的無關)與表單在「nonce」參數中發送的值無關。然後它會像平常一樣發送文件下載。

當HTTP響應回到瀏覽器時,cookie將被設置。查詢cookie值的Javascript將會看到,然後它將知道正在處理HTTP響應。現在,它不會知道用戶在文件下載時沒有點擊「取消」。

如果服務器確定原始請求出錯(例如,如果文件下載涉及表單並且用戶提供了錯誤的輸入或者錯過了一個字段),那麼它將不會設置cookie並且可以僅響應HTML的錯誤(或其他)。

+0

有趣的想法 – 2010-06-01 13:38:20

+0

好主意!我會做的。 – 2010-06-02 01:11:26

+0

@ pat.inside然後標記答案正確的大聲笑! – Sphvn 2010-06-04 05:02:55

相關問題