我的应用程序使用 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');
})();
}
包括兼容性.js以修复 IE11 上的错误。
https://github.com/mozilla/pdf.js/blob/master/web/compatibility.js
<script src="compatibility.js"></script>
兼容性.js实现了 PDFJS 所需的任何缺失功能。
这也修复了其他错误,例如某些 pdf 无法在 Safari 上加载。
我对这个问题的解决方案非常简单,尽管我不知道安全性如何。在我的特定情况下,在我添加另一个条件后,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');
})();
}