下载 iframe 中加载的 html 内容

Download html content loaded inside iframe

本文关键字:html 内容 加载 iframe 下载      更新时间:2023-09-26

我有一个显示HTML页面的iframe。有一个对服务器的 ajax 调用,它创建 HTML 文件并返回文件的路径作为响应,我动态创建 iframe 并显示它。

现在,我需要知道,有没有办法允许用户从该 iframe 下载该 HTML 文件?可能是一个按钮,单击时,会进行下载。

我怎样才能提取它?抱歉,如果问题框架不正确。我正在尽力而为。下面是显示 HTML 文件的代码

$.ajax({
    url: 'diffReport?url='+url,
    success:function(data){
        var div = document.getElementById("diffReport");
        div.innerHTML = '<iframe style="width:100%;height:100%;" frameborder="0" src="'+data+'" />';
    },
    error: function(xhr, status, error) {
        var err = eval("(" + xhr.responseText + ")");
        console.log(err);
    }
});

在 ajax 调用 servlet 之后,将在服务器目录中创建一个物理 HTML 文件。现在我无法理解如何让用户/客户端自由地将该文件下载到他的本地系统。

请指教。

要下载文件,您需要执行完全回发到服务器。由于您使用的是 ajax,因此您可以通过将 iframe 的 src 属性指向 url 来实现这一点(理论上 - 我还没有对其进行测试),而 url 又将返回带有修改标头的 html 作为响应:"application/octet-stream"。通常就是这样的想法。实现将取决于您使用的服务器端环境。