Hướng dẫn áp dụng Fix Excel Download
Vấn đề
File Excel chỉ tải được 1 lần, lần 2+ thất bại vì URL.revokeObjectURL() được gọi sau 60s.
Cách 1: Thêm script (KHUYÊN DÙNG - NHANH NHẤT)
Mở file index.html, tìm thẻ </body> và thêm đoạn sau vào ngay trước</body>>:
<!-- Excel Multi-Download Fix - Load AFTER qr-payment-v1038.js -->
<script>
(function(){
'use strict';
var excelBlobRegistry=[],isUnloading=!1;
function cleanupBlobs(){isUnloading=!0,excelBlobRegistry.forEach(function(e){try{URL.revokeObjectURL(e.url)}catch(err){}e.revoked=!0;}),excelBlobRegistry=[];}
window.addEventListener('pagehide',cleanupBlobs);
window.addEventListener('beforeunload',cleanupBlobs);
window.addEventListener('unload',cleanupBlobs);
(function(){var e=URL.revokeObjectURL;URL.revokeObjectURL=function(t){if(isUnloading||!t||"string"!=typeof t||!t.startsWith("blob:"))return e.call(this,t);if(!excelBlobRegistry.find(function(e){return e.url===t}))return void excelBlobRegistry.push({url:t,revoked:!1,created:Date.now()})}}})();
console.log('[Excel Multi-Download Fix] Loaded');
})();
</script>
Cách 2: Thêm script include
<script src="https://huggingface.co/spaces/bep40/V.AISTUDIO/resolve/main/excel-download-ultimate-fix-v2.js"></script>
Cách 3: Sửa trực tiếp trong qr-payment-v1038.js
Tìm và xóa 2 dòng sau:
- Trong
_doExportExcel:setTimeout(function(){URL.revokeObjectURL(url);},60000); - Trong
_doExportDeliveryExcel:setTimeout(function(){URL.revokeObjectURL(url);},60000);
Test
- Mở Space V.AISTUDIO
- Tạo báo giá → Click 💾 Excel → tải
- Click 💾 Excel NGAY → vẫn tải được ✅
File đã chuẩn bị
- excel-download-ultimate-fix-v2.js (đã upload)
- PR #6 (đang chờ merge)
Cập nhật: 14-07-2026