bep40 commited on
Commit
ffad2a8
·
verified ·
1 Parent(s): 7ebd115

Delete vai-fix-order-download-v1042.js

Browse files
Files changed (1) hide show
  1. vai-fix-order-download-v1042.js +0 -112
vai-fix-order-download-v1042.js DELETED
@@ -1,112 +0,0 @@
1
- /**
2
- * V.AI STUDIO - Order Download Fix v1047 COMPLETE
3
- *
4
- * VẤN ĐỀ: Excel/PDF chỉ tải 1 lần, download lần 2+ không hoạt động
5
- *
6
- * FIX TRIỆT ĐỐI:
7
- * - Monkey-patch URL.revokeObjectURL HOÀN TOÀN
8
- * - KHÔNG revoke blob URLs - để download hoàn thành
9
- * - Cleanup khi unload (pagehide/beforeunload/unload)
10
- * - Hỗ trợ mọi trình duyệt, download nhiều lần
11
- */
12
- (function() {
13
- 'use strict';
14
-
15
- // Registry lưu blob URLs
16
- var blobRegistry = [];
17
-
18
- // Lưu revoke gốc
19
- var _originalRevoke = URL.revokeObjectURL;
20
- var _revokePatched = false;
21
-
22
- // PATCH URL.revokeObjectURL
23
- function patchRevoke() {
24
- if (_revokePatched) return;
25
- _revokePatched = true;
26
-
27
- URL.revokeObjectURL = function(url) {
28
- // Bỏ qua HOÀN TOÀN cho blob URLs
29
- if (url && typeof url === 'string' && url.startsWith('blob:')) {
30
- var exists = blobRegistry.find(function(e) {
31
- return e.url === url;
32
- });
33
- if (!exists) {
34
- blobRegistry.push({
35
- url: url,
36
- revoked: false,
37
- created: Date.now()
38
- });
39
- }
40
- // KHÔNG revoke - để download hoàn thành
41
- return;
42
- }
43
- // Cho phép revoke các URL khác
44
- return _originalRevoke.call(this, url);
45
- };
46
-
47
- console.log('[Fix v1047] Loaded - multi-download support enabled');
48
- }
49
-
50
- // Chạy ngay
51
- patchRevoke();
52
- setInterval(patchRevoke, 500);
53
-
54
- // CLEANUP KHI UNLOAD
55
- function cleanupBlobs() {
56
- blobRegistry.forEach(function(entry) {
57
- if (!entry.revoked && entry.url) {
58
- try {
59
- _originalRevoke.call(URL, entry.url);
60
- entry.revoked = true;
61
- } catch (e) {}
62
- }
63
- });
64
- blobRegistry = [];
65
- }
66
-
67
- window.addEventListener('pagehide', cleanupBlobs);
68
- window.addEventListener('beforeunload', cleanupBlobs);
69
- window.addEventListener('unload', cleanupBlobs);
70
-
71
- // PATCH VAI_QR._doExportDeliveryExcel
72
- function patchVAIDR() {
73
- if (!window.VAI_QR || !window.VAI_QR._doExportDeliveryExcel) return;
74
-
75
- var patched = window.VAI_QR._doExportDeliveryExcel._vaiPatched;
76
- if (patched) return;
77
-
78
- var originalDoExport = window.VAI_QR._doExportDeliveryExcel;
79
-
80
- window.VAI_QR._doExportDeliveryExcel = async function(qd, code) {
81
- // Override revoke tạm thời
82
- var savedRevoke = URL.revokeObjectURL;
83
-
84
- URL.revokeObjectURL = function(url) {
85
- if (url && url.startsWith('blob:')) {
86
- blobRegistry.push({ url: url, revoked: false });
87
- return;
88
- }
89
- return savedRevoke.call(this, url);
90
- };
91
-
92
- try {
93
- await originalDoExport.call(this, qd, code);
94
- } finally {
95
- URL.revokeObjectURL = savedRevoke;
96
- }
97
- };
98
- window.VAI_QR._doExportDeliveryExcel._vaiPatched = true;
99
- console.log('[Fix v1047] VAI_QR patched');
100
- }
101
-
102
- setInterval(patchVAIDR, 500);
103
- setTimeout(patchVAIDR, 2000);
104
-
105
- // PATCH exportDeliveryExcel toàn cục
106
- var _originalExportDelivery = window.exportDeliveryExcel;
107
- window.exportDeliveryExcel = async function() {
108
- await _originalExportDelivery.call(this);
109
- };
110
-
111
- console.log('[Fix v1047] Excel multi-download fix ready');
112
- })();