我正在尝试使用pdf.js在IE10的数据URL中显示文档。也就是说,类似这样的东西。
它可以在Firefox或Chrome上很好地工作,但是在Internet Explorer 10和11中,显示了该界面,但该界面为空,并且文档从未加载。
我检查过,compatibility.js包含在渲染器页面(viewer.html)中,因此应该提供IE支持。
编辑:实际上,这是一个安全问题,因为IE不允许运行这种类型的请求。
提前致谢,
好的,如果有人遇到相同的问题,我将绕过lib的正常加载路径,并按照async5的建议将数据直接转换为字节数组,从而解决了这个问题。
也就是说,在viewer.js中,将这些行添加到6856行以下:
if (file && file.lastIndexOf('data:', 0) === 0) {
// data: url-scheme. we will load those with direct conversion to byte array
function convertDataURIToBinary(dataURI) {
var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length;
var base64 = dataURI.substring(base64Index);
var raw = window.atob(base64);
var rawLength = raw.length;
var array = new Uint8Array(new ArrayBuffer(rawLength));
for(var i = 0; i < rawLength; i++) {
array[i] = raw.charCodeAt(i);
}
return array;
}
// PDFViewerApplication.setTitleUsingUrl(file);
PDFViewerApplication.open(convertDataURIToBinary(file), 0);
return;
}
(base64到字节数组的代码是Codetoffel在此处发布的代码)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句