【发布时间】:2014-01-01 14:09:11
【问题描述】:
我试图在我的客户端上显示一个“掩码”,而文件是在服务器端动态生成的。似乎建议的解决方法(因为它不是 ajax)是使用 iframe 并从 onload 或 done 事件中侦听以确定文件何时从服务器实际发送到客户端。
这是我的角码:
var url = // url to my api
var e = angular.element("<iframe style='display:none' src=" + url + "></iframe>");
e.load(function() {
$scope.$apply(function() {
$scope.exporting = false; // this will remove the mask/spinner
});
});
angular.element('body').append(e);
这在 Firefox 中效果很好,但在 Chrome 中没有运气。我也尝试过使用 onload 功能:
e.onload = function() { //unmask here }
但我在那里也没有运气。
想法?
【问题讨论】:
-
您是否尝试过将 onload 直接添加到 iframe 的 html 中?过去,我在 Chrome 加载元素和相关事件的顺序方面遇到了一些问题。
-
是的,刚试过。在 FF 中仍会触发,但在 Chrome 中不会触发。
-
嗯,网址呢?你不会跨域吧?
-
想知道服务器设置的标头是否有问题。我正在设置 Content-Type = 'application/zip',并且 Content-Disposition = 'attachment;文件名=temp.zip。不太确定还有什么可能。
-
这是一个显示问题的插件。在 FF 中运行效果很好,在 Chrome 中运行不是很多:plnkr.co/edit/zkqeAW?p=preview
标签: javascript google-chrome angularjs iframe