嘿伙计我有文件阅读器指令的问题在IE 11上我遇到了间歇性的安全错误:
指令代码:
(function () {
var module = angular.module("new");
module.directive("freader", function () {
return {
scope: {
freader: "="
},
link: function (scope, element) {
element.bind("change", function (e) {
var reader = new FileReader();
var file = e.target.files[0];
var data = null;
file.size = file.date;
reader.onload = function (e) {
var array = new Uint8Array(e.target.result);
var result = Array.prototype.slice.call(array);
data = { data: result };
data.name = file.name;
if (data) {
scope.$apply(function() {
scope.freader = data;
});
}
}
if(file)
reader.readAsArrayBuffer(file);
});
}
}
});})();
到目前为止,我研究了干净的功能:
<input type="file" freader="vm.file" onclick="clean(this)" />
function clean(val) {
try {
val.value = null;
} catch (ex) { }
if (val.value) {
val.parentNode.replaceChild(val.cloneNode(true), val);
}
}
我还尝试将输入类型设置为文本然后再返回文件但是没有任何效果,错误总是在一段时间后显示。
不确定如何处理这个问题?