fix filedownload with chrome/edge+selfsignedcerts #7553
Signed-off-by: si458 <simonsmith5521@gmail.com>
si458 committed
Jan 16, 2026 at 11:40 UTC
977cb350bc2205aaa86fb775741fbf54a9c7f637
4 files changed
+16
-30
views/agentinvite.handlebars
+4
-7
@@ -515,14 +515,11 @@
515
function escapeHtmlBreaks(string) { return String(string).replace(/[&<>"'`=\/]/g, function (s) { return { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''', '/': '/', '`': '`', '=': '=', '\r': '<br />', '\n': '' }[s]; }); };
516
function addHtmlValue(t, v) { return '<table><td style=width:120px>' + t + '<td><b>' + v + '</b></table>'; }
517
function downloadFile(link, name, closeDialog) {
518
- var element = document.createElement('a');
519
- element.setAttribute('href', link);
520
- element.setAttribute('rel', 'noreferrer noopener');
521
- element.setAttribute('target', 'fileDownloadFrame');
522
- element.setAttribute('download', decodeURIComponent(name?name:''));
518
+ var element = document.createElement('iframe');
519
+ element.style.cssText = 'display:none;width:0;height:0;border:0;visibility:hidden;';
520
+ element.src = link;
521
document.body.appendChild(element);
524
- element.click();
525
- document.body.removeChild(element);
522
+ setTimeout(function() { try { if (element.parentNode) { document.body.removeChild(element); } } catch(e) { } }, 10000);
523
if (closeDialog) { setDialogMode(0); }
524
}
525
function copyAgentUrl(url,addflag) {
views/default.handlebars
+4
-7
@@ -19474,14 +19474,11 @@
19474
function isMacNode(node) { if ((node.mtype != 2) || (node.agent == null) || (node.agent.id == null)) return false; return ([11,16,29].indexOf(node.agent.id) >= 0); }
19475
19476
function downloadFile(link, name, closeDialog) {
19477
- var element = document.createElement('a');
19478
- element.setAttribute('href', link);
19479
- element.setAttribute('rel', 'noreferrer noopener');
19480
- element.setAttribute('target', 'fileDownloadFrame');
19481
- element.setAttribute('download', decodeURIComponent(name?name:''));
19477
+ var element = document.createElement('iframe');
19478
+ element.style.cssText = 'display:none;width:0;height:0;border:0;visibility:hidden;';
19479
+ element.src = link;
19480
document.body.appendChild(element);
19483
- element.click();
19484
- document.body.removeChild(element);
19481
+ setTimeout(function() { try { if (element.parentNode) { document.body.removeChild(element); } } catch(e) { } }, 10000);
19482
if (closeDialog) { setDialogMode(0); }
19483
}
19484
views/default3.handlebars
+4
-7
@@ -21184,14 +21184,11 @@
21184
function isWindowsNode(node) { if ((node.mtype != 2) || (node.agent == null) || (node.agent.id == null)) return false; return ([1, 2, 3, 4, 21, 22, 34, 42, 43].indexOf(node.agent.id) >= 0); }
21185
21186
function downloadFile(link, name, closeDialog) {
21187
- var element = document.createElement('a');
21188
- element.setAttribute('href', link);
21189
- element.setAttribute('rel', 'noreferrer noopener');
21190
- element.setAttribute('target', 'fileDownloadFrame');
21191
- element.setAttribute('download', decodeURIComponent(name ? name : ''));
21187
+ var element = document.createElement('iframe');
21188
+ element.style.cssText = 'display:none;width:0;height:0;border:0;visibility:hidden;';
21189
+ element.src = link;
21190
document.body.appendChild(element);
21193
- element.click();
21194
- document.body.removeChild(element);
21191
+ setTimeout(function() { try { if (element.parentNode) { document.body.removeChild(element); } } catch(e) { } }, 10000);
21192
if (closeDialog) { setDialogMode(0); }
21193
}
21194
views/sharing.handlebars
+4
-9
@@ -2350,17 +2350,12 @@
2350
function focusTextBox(x) { setTimeout(function () { Q(x).selectionStart = Q(x).selectionEnd = 65535; Q(x).focus(); }, 0); }
2351
var isFilenameValid = (function () { var x1 = /^[^\\/:\*\?"<>\|]+$/, x2 = /^\./, x3 = /^(nul|prn|con|lpt[0-9]|com[0-9])(\.|$)/i; return function isFilenameValid(fname) { return x1.test(fname) && !x2.test(fname) && !x3.test(fname) && (fname[0] != '.'); } })();
2352
2353
- // Webkit seems to have a problem with "download" tag causing "network error", but openning the download in a hidden frame fixes it.
2354
- // So we do that for all browsers except FireFox
2353
function downloadFile(link, name, closeDialog) {
2356
- var element = document.createElement('a');
2357
- element.setAttribute('href', link);
2358
- element.setAttribute('rel', 'noreferrer noopener');
2359
- element.setAttribute('target', 'fileDownloadFrame');
2360
- if (navigator.userAgent.indexOf('Firefox') >= 0) { element.setAttribute('download', decodeURIComponent(name ? name : '')); }
2354
+ var element = document.createElement('iframe');
2355
+ element.style.cssText = 'display:none;width:0;height:0;border:0;visibility:hidden;';
2356
+ element.src = link;
2357
document.body.appendChild(element);
2362
- element.click();
2363
- document.body.removeChild(element);
2358
+ setTimeout(function() { try { if (element.parentNode) { document.body.removeChild(element); } } catch(e) { } }, 10000);
2359
if (closeDialog) { setDialogMode(0); }
2360
}
2361