替代Ext.window中的iframe

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了替代Ext.window中的iframe相关的知识,希望对你有一定的参考价值。

我有一个很大的html文件,我想通过打开新窗口来下载。我目前正在使用iframe,这会使处理过程变得漫长,缓慢,并且也阻塞了应用程序。有人可以建议我替代iframe吗?请参见下面的代码

   var window = new Ext.Window(
                title: "download",
                height: 100,
                layout: 'fit',
                items: [
                    xtype: 'component',

                    autoEl: 
                            tag: 'iframe',
                            src: 'largedata.html'

                        
                    ]
            ).show();
答案

您可以通过XMLHttpRequest和隐藏的dom元素来完成。

示例:

        var xhr = new XMLHttpRequest();
        xhr.responseType = 'blob';
        xhr.onload = function () 
            if (xhr.status == 200) 
                var name = xhr.getResponseHeader('Content-Disposition');
                var filename = name.split("Attachment;filename=")[1];
                var a = document.createElement('a');
                a.href = window.URL.createObjectURL(xhr.response); // xhr.response is a blob
                a.download = filename; // Set the file name.
                a.style.display = 'none';
                document.body.appendChild(a);
                a.click();
                delete a;
            
        ;
        xhr.open('GET', url, true);
        xhr.send();

参数url是文件的路径。

以上是关于替代Ext.window中的iframe的主要内容,如果未能解决你的问题,请参考以下文章

Ext.window.MessageBox draggable false,调用hide方法出错

ext window嵌jsp页面自适应

根据条件显示 Ext.Window 按钮

Ext.Window在extjs 3.4中当前​​打开的窗口后面显示方法打开窗口

Ext信息提示对话框

Ext.js中组件简要说明