替代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方法出错