我有谷歌瀏覽器的iframe onLoad事件的問題。我創建了一個iframe併爲其「src」屬性設置值以從服務器獲取文件。在服務器正在處理時,顯示一個等待框,直到客戶端獲得返回的文件。我嘗試使用iframe的onLoad事件來檢測客戶端何時獲取文件以關閉該等待框,但在Google Chrome上,該事件處理程序不起作用。
與Firefox,當客戶端獲得一個文件,「保存到」彈出會自動顯示和事件「負載」將被解僱,但這無法在Chrome發生。
你能告訴我如何處理這個問題呢?非常感謝!Chrome獲取下載文件時會觸發哪個JS事件?
回答
我碰到這個確切的問題。事實證明Chrome在文件下載時在iframe中完全沒有觸發事件。
由於沒有需要注意的事件,並且您正在返回一個文件(與任何內聯內容相關),所以我不得不在幾秒鐘後檢查iframe的內容,如果它是空的,那麼假定沒有錯誤並且結果處理正確。如果它包含數據(如果有錯誤,我的服務器將返回JSON),然後相應地處理錯誤數據。
我解決這個問題的方法是設置一個cookie(完成= 0),當頁面將要加載iframe時,我使用javascript將iframe放到頁面上,並更改此值當iframe的源代碼腳本成功運行時(cookie = 1),cookie。
然後我用一個簡單的Ajax調用了setTimeout的返回cookie的值,當值是1,我可以觸發onload事件(對所有其他瀏覽器上運行)。
剛剛完成評論。你看到這個[計算器上後(http://stackoverflow.com/questions/1106377/detect-when-browser-receives-file-download)? – 2012-10-11 08:34:29
我碰到同樣的問題,我結束了使用這個插件:http://johnculviner.com/jquery-file-download-plugin-for-ajax-like-feature-rich-file-downloads/
它是基於相同的概念摩根介紹,很容易使用,和它的工作很大。
- 1. JS BeforeUnload事件有時不會觸發
- 2. extjs 3 - 當extjs完全加載時會觸發哪個事件
- 3. Ext JS:從Chrome下載文件的iframe加載事件
- 4. 獲取觸發事件
- 5. Angular JS不會觸發滾動事件
- 6. D3.js事件觸發加載
- 7. 選擇加載哪個JS文件不會加載文件
- 8. Chrome中觸發的事件
- 9. Chrome FileReader未觸發事件
- 10. 當vtiger關閉時,哪個事件會彈出觸發器?
- 11. Pimcore第一次產品保存時會觸發哪個事件?
- 12. Android:在屏幕鍵盤出現時會觸發哪個事件?
- 13. 當子菜單項打開時會觸發哪個事件
- 14. 在X.org中切換kb佈局時會觸發哪個事件
- 15. 當treeview項目失去焦點時會觸發哪個事件
- 16. 當AngularJS完成渲染時會觸發哪個事件?
- 17. Drop事件不觸發/ JS中觸發
- 18. 獲取觸發事件的小部件?
- 19. php&js combobox觸發事件
- 20. JS觸發keydown事件
- 21. 哪個會先觸發WPF控件中的綁定觸發器或事件
- 22. C#加載事件不會觸發
- 23. 單擊按鈕時要觸發的事件也會觸發另一個事件
- 24. WPF VisualState - 「按下」事件不會觸發
- 25. 如何創建一個事件下載完成時觸發
- 26. 我怎麼知道哪個元素從js觸發事件?
- 27. 從URL中獲取觸發以Python下載的文件
- 28. 哪個事件觸發回調函數
- 29. Winforms:哪個事件觸發? combobox.selectedindexchanged OR bindingsource.currentchanged
- 30. ASP.NET按鈕單擊事件在用戶下載後不會觸發文件
我想這就是插件從這個答案做什麼http://stackoverflow.com/a/20973242/1175496 – 2015-02-20 19:38:31
請參閱以下帖子的示例代碼:https://stackoverflow.com/questions/12076494/ onload事件,在-I幀 - 不工作,如果的iframe具備的,非HTML文檔,在-SRC-PDF-或-T/12190776#12190776。我花了一點時間才弄清楚其他地方的其他一些答案,這些答案指的是使用'onload'事件,其中實際上是錯誤的。這可能與最新的網頁瀏覽器更符合規範有關。 – RZet 2017-10-20 09:50:10