jQuery fileDownload 插件不显示弹出窗口,如何解决这个问题?
Posted
技术标签:
【中文标题】jQuery fileDownload 插件不显示弹出窗口,如何解决这个问题?【英文标题】:jQuery fileDownload plugin doesn't show popup window, how to fix this? 【发布时间】:2019-09-20 16:28:38 【问题描述】:我将 jQuery 用于应用程序的前端部分(后端在 Flask 上运行),我需要一个插件来在用户等待文件提供给他时向他显示某种信息(我还需要使用旧版本的 IE,这就是为什么我决定使用this plugin)。
不幸的是,由于我遇到了一些奇怪的 JS 错误(屏幕和下面的示例代码),我无法用它做任何事情。
示例服务器端代码:
from flask import Flask, send_file, render_template
import os
from time import sleep
app = Flask(__name__)
@app.route('/', methods=['GET'])
def mainRoute():
return render_template('index.html')
@app.route('/filesfordl/file.txt', methods=['GET'])
def fileRoute():
sleep(5) # time for window to appear
fileResponse = send_file(os.path.join(os.getcwd(), 'filesfordl/file.txt'), as_attachment=True, attachment_filename='file.txt')
fileResponse.set_cookie('fileDownload', 'true')
return fileResponse
if __name__ == '__main__':
app.run('0.0.0.0', '5000')
我的 index.html:
<html>
<head>
<script type="text/javascript" src=" url_for('static', filename='js/jquery-3.3.1.min.js') "></script>
<script type="text/javascript" src=" url_for('static', filename='js/jquery.fileDownload.js') "></script>
<script type="text/javascript" src=" url_for('static', filename='js/script.js') "></script>
</head>
<body>
<a href="/filesfordl/file.txt" class="fileDownloadSimpleRichExperience">Get file!</a>
</body>
</html>
最后是 JS 部分:
/*$.fileDownload('/filesfordl/file.txt',
successCallback: function (url)
alert('You just got a file download dialog or ribbon for this URL :' + url);
,
failCallback: function (html, url)
alert('Your file download just failed for this URL:' + url + '\r\n' +
'Here was the resulting error HTML: \r\n' + html
);
);
*/
$(function()
$(document).on("click", "a.fileDownloadSimpleRichExperience", function()
$.fileDownload($(this).attr('href'),
preparingMessageHtml: "We are preparing your report, please wait...",
failMessageHtml: "There was a problem generating your report, please try again."
);
return false; //this is critical to stop the click event which will trigger a normal file download!
);
);
^^ 这部分如果我把上面的代码去掉注释,即使我不点击链接,进入index.html后总会触发failCallback。
单击超链接后,我收到此错误消息(还不能直接发布图片): this 这最终导致插件代码中的这一行。 this
编辑:
我在有问题的行的顶部添加了一些调试打印:
console.log($("<div>").html(settings.preparingMessageHtml).dialog);
console.log($("<div>").html(settings.preparingMessageHtml));
我在is 之后得到了输出。 关于我做错了什么有什么想法吗?
【问题讨论】:
【参考方案1】:好吧,没关系,我只是忘记包含 jQuery UI 文件,这是我的问题的唯一原因,主题可以关闭。
【讨论】:
以上是关于jQuery fileDownload 插件不显示弹出窗口,如何解决这个问题?的主要内容,如果未能解决你的问题,请参考以下文章
jquery.fileDownload.js插件导出excel
Safari 添加 .html 以使用 epplus jquery.fileDownload.js 下载 xlsx
使用xlwt创建Excel文件并插入对有效的响应jquery.fileDownload文件下载
jquery.fileDownload plugin: Success msg alert before actual pdf download completed