我正在使用以下代码为服务器上静态提供的文件创建另存为对话框:
open: function() {
$('.ui-widget-overlay').addClass('dialog-overlay');
},
close: function() {
$('.ui-widget-overlay').removeClass('dialog-overlay');
},
buttons: {
"Save": function() {
var iframe = document.createElement("iframe");
iframe.src = 'static/staticfile.txt';
iframe.style.display = "none";
document.body.appendChild(iframe);
return false;
},
...
...
iframe 功能对按下的“保存”按钮做出反应,该按钮属于 jQuery UI 菜单小部件。
此另存为代码基于此问题的公认答案:通过 jQuery GET 强制“另存为”对话框
当服务器在本地运行并且当浏览器与服务器在同一台机器上时出现另存为对话框时,这可以正常工作。但是当服务器远程运行时,我的浏览器在按下按钮时不显示对话框。服务器没有报告任何问题;服务器成功接收到静态文件的 GET 请求。使用 Chrome 调试器显示按钮按下已得到确认,并且回调代码执行时没有错误(或效果)。我在 Chrome 和 Firefox 中都观察到了这种行为。
谁能建议为什么会发生这种情况?