中的鏈接,你所提供的網頁說:
FileSaver.js實現在本身不支持它的瀏覽器的HTML5 W3C的saveAs()FileSaver接口。
所鏈接的頁面,指着規格爲filesaver表示,它支持以下顯著事件:
型功能
處理器爲writeend事件onwriteend。
這就是你需要使用的。保存操作,就像javascript中最重要的事情一樣,是一個異步事件。
你想趕上寫操作結束,然後關閉窗口:
canvas.toBlob(function (blob) {
var filesaver = saveAs(blob, "RQGantt.png");
filesaver.onwriteend = function() { window.close(); }
}
編輯
不幸的是,看起來這是不可用。請參閱:https://github.com/eligrey/FileSaver.js/issues/1
也許您可以要求插件的作者重新審視該問題。
我可以建議的最好的方式是添加一個按鈕,讓用戶單擊關閉。點擊後,你可以調用abort,如github頁面所示,假設它已經完成,它會完全退出。然後做一個window.close。
也許你應該在GitHub頁面發佈一個問題。開發者看起來很活躍:https://github.com/eligrey/FileSaver.js/issues?state = open - 通常這種事情是在'onComplete'風格的回調中處理的,但是沒有進入插件本身的源代碼,我不能告訴你這樣的回調是否存在。 –
爲什麼不在「saveAs」函數中添加回調函數,因此只有在saveAs函數完成後纔會關閉窗口?例如http://jsfiddle.net/gH8FY/ – Latheesan