我的应用程序使用pdf.js显示pdf。一切正常,但当然IE没有。它在启动时抛出异常:
Unhandled exception at line 8290, column 5 in http://.../scripts/pdf-js/pdf.js
0x800a138f - Timeout execution error JavaScript Code: Couldn't load(get) "src" property fo undefined or empty call.
渲染pdf时一切正常,我只想摆脱这个异常。 (请注意,我正在翻译" 0x800a138f"之后出现的错误消息。如果有人知道确切的英语错误内容,我会更改它和问题标题。)
更新
每个应用程序启动时都会出错。正如我所说,一切正常。 pdf.js脚本中有异常碰撞的行:
if (!PDFJS.workerSrc && typeof document !== 'undefined') {
// workerSrc is not set -- using last script url to define default location
PDFJS.workerSrc = (function () {
'use strict';
var pdfJsSrc = document.currentScript.src; // here the src cannot be found
return pdfJsSrc && pdfJsSrc.replace(/\.js$/i, '.worker.js');
})();
}
答案 0 :(得分:2)
包含compatibility.js以修复IE11上的错误。
https://github.com/mozilla/pdf.js/blob/master/web/compatibility.js
<script src="compatibility.js"></script>
compatibility.js实现了PDFJS所需的任何缺失功能。
这也修复了其他一些错误,比如某些pdf没有在Safari上加载。
答案 1 :(得分:0)
我对这个问题的解决方案非常简单,虽然我不知道有多安全。在我的具体情况下,pdf查看在我添加另一个条件后运作良好:
if (!PDFJS.workerSrc && typeof document !== 'undefined' && typeof document.currentScript !== 'undefined' ) {
// workerSrc is not set -- using last script url to define default location
PDFJS.workerSrc = (function () {
'use strict';
var pdfJsSrc = document.currentScript.src;
return pdfJsSrc && pdfJsSrc.replace(/\.js$/i, '.worker.js');
})();
}