我试图在Polymer 2.0应用程序中下载动态生成的文件 . 下载适用于聚合物元素,但由于我认为应用程序路由,因此无法在聚合物应用程序中运行 . 下载的Javascript代码如下:
_downloadCSV() {
var bigarray = ['User name, Full name, Age, City, Email\n'];
var a = window.document.createElement('a');
a.href = window.URL.createObjectURL(new Blob(bigarray, { type: 'text/csv' }));
a.download = 'test.csv';
// Append anchor to body.
document.body.appendChild(a)
a.click();
// Remove anchor from body
document.body.removeChild(a)
}
该代码用于Polymer 2.0元素 . 当与"polymer serve"一起使用时,它适用于元素演示页面 . 但是,在Polymer应用程序中使用该元素时,下载不再有效 . app-route元素重定向到第404页 . 是否可以更改app-route的行为,以便浏览器而不是应用程序处理这种URL(a.href = blob:http://127.0.0.1:8081/d14faaa1-a0c7-48f9-b3ba-77492c43a551)?任何帮助将不胜感激 .
2 回答
您需要设置Web服务器以允许从您的URL下载文件 .
https://github.com/PolymerElements/app-route#hashes-vs-paths
下面的解决方案可能是一个简单的解决方案:
<app-location id =“apploc”route =“{}”> </ app-location>
connectedCallback(){super.connectedCallback(); this.apploc_ele = this . $ . apploc; }
enableAppLocation(enable){if(!enable){this . $ . apploc.remove(); } else {this.shadowRoot.appendChild(this.apploc_ele); }}