pdf.js IE11 中的错误,src 属性 (0x800a138f)

pdf.js error in IE11, src property (0x800a138f)

本文关键字:属性 src 0x800a138f 错误 js IE11 pdf      更新时间:2023-09-26


我的应用程序使用 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');
   })();
}