台灣最大程式設計社群網站
線上人數
1504
 
會員總數:231571
接案會員:6791
文章總數:1904
討論主題:178740
歡迎您免費加入會員
討論區列表 >> ASP.NET >> IE8 無法下載
[變換順序]
[我要回覆]
1


回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
IE8 無法下載
價值 : 100 QP  點閱數:8069 回應數:8

樓主

Sean
初學者
463 22
674 73
發送站內信

小弟我有A與B 2個頁面,A頁面只是簡單的使用window.open B頁面
而B頁面則是輸出檔案
但是現在以此種流程,IE8會無法下載輸出的檔案(若是將該網站加入[內部網站]就可以下載檔案)
A頁面 javascript如下

B頁面程式碼如下




本篇文章發表於2009-12-25 16:16
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

Jelly Fish
捐贈 VP 給 Jelly Fish 檢舉此回應
安全性沒開放

IE8/工具/網際網路選項/安全性/網際網路/自訂等級/下載/檔案下載/啟用/確定/確定

本篇文章回覆於2009-12-25 16:35
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Sean
檢舉此回應
Jelly Fish您好,安全設定內的檔案下載選項是有啟用的
若是在A頁面中加入一個超連結

手動去點擊超連結,是可以正常下載檔案的
感謝


本篇文章回覆於2009-12-25 16:44
--未登入的會員無法查看對方簽名檔--
3樓
回應

lsk
捐贈 VP 給 lsk 檢舉此回應
會不會是快顯封鎖,先把它關閉試試就知道了

本篇文章回覆於2009-12-25 16:55
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

Sean
檢舉此回應
小弟剛剛試了幾樣設定,可以正常下載
1.IE8/工具/網際網路選項/安全性/網際網路/自訂等級/下載/自動提示下載檔案/啟用
2.window.open不是由javascript自行啟動,而是由使用者點擊按鈕執行,這樣也可以正常下載
例如



若使用者點擊名為myBtn的按鈕,也可正常下載檔案

目前小弟的需求,上面2套方案都不太可行,會被使用者抱怨

本篇文章回覆於2009-12-25 17:03
--未登入的會員無法查看對方簽名檔--
5樓
回應

小聽
檢舉此回應
那就不要用window.open的參數了
換成:
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="B.aspx?p1=20091204111530.xls" Target="_blank">(可擺按鈕圖片)</asp:HyperLink>

這樣新視窗就不會快顯封鎖!!!
因為快顯封鎖對 Target="_blank" 無效 哈!

本篇文章回覆於2009-12-25 17:23
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

Sean
檢舉此回應
感謝小聽大大的回應
小弟的目前的需求是,需要網頁"自動"開啟新視窗下載檔案
感謝

本篇文章回覆於2009-12-25 17:31
--未登入的會員無法查看對方簽名檔--
7樓
回應

gipi
檢舉此回應
1.IE8/工具/網際網路選項/安全性/網際網路/自訂等級/下載/自動提示下載檔案/啟用

這項其實很正常的,可以教育使用者,因為安全性不開你有很多事情是做不到的,不然看看這個我不想講的鳥功能好了,透過類似的方式自動幫client端改機碼,但前提仍要他信任你的ActiveX:
http://www.dotblogs.com.tw/jimmyyu/archive/2009/05/29/8594.aspx

本篇文章回覆於2009-12-26 19:57
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

Sean
檢舉此回應
小弟我的使用情境如下
A頁面負責產生excel檔案於server端,B頁面則為下載檔案的頁面
A頁面篩選資料,列出GRID,頁面上有一個匯出鈕,讓使用者將資料匯出至Excel,並讓使用者下載
由於產生Excel花費若干時間,為了明確告知使用者資料正在產生中,因此A頁面會出現一個提示訊息,"資料正在產生中.."
待Excel檔案產生完畢,就利用windows.open"自動"另開視窗(B頁面)讓使用者下載產生的Excel檔案
而IE會認為,當使用者點擊匯出鈕PostBack至Server,而傳回window.open的JS,而B頁面又是下載檔案,因此將認定為頁面再進行"自動"下載檔案,有安全性疑慮
若是"匯出"鈕直接就是JS的window.open則可正常下載檔案,因為IE認定為此動作是經使用者"手動"的
小弟會使用這樣子的流程在於
1.不可於A頁面直接進行資料輸出,因為資料輸出會重新設定HTTP標頭,導致A頁面出問題
2.不可於A頁面直接利用匯出鈕寫入JS 進行window.open B頁面,而在B頁面中,進行產生資料與檔案輸出的動作
原因在於,產生Excel檔案需要若干時間,必須明確告知使用者,目前正在處理中,而window.open的視窗,並不是"強制回應型"視窗(例如confirm),因此該段訊息極可能被呼略

目前打算採用部份流程2的解法,但是將window.open B頁面改為以thickbox開啟B頁面,且在B頁面顯示提示文字
不知各位大大是否有更好的解法

to gipi大大:
使用者是需要被教育的,這點很有道理,小弟也一直很認同,今天只是想要了解問題的原因與嘗試不同解法,有時候想這些問題也是很有趣的
原本在本機VS2008開發環境,經過測試一切都沒問題,等正式上線時,自己也用FireFox測過一次(小弟習慣使用FireFox),等到展示給使用者看時
才發現,怎麼都不能下載,害我丟個好大的臉,而單單只有IE+正式環境才有問題,也讓我抓這個問題抓了好久

在此感謝各位大大

本篇文章回覆於2009-12-26 22:15
--未登入的會員無法查看對方簽名檔--
[變換順序]
1
 

回覆
如要回應,請先登入.