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

时间:2016-02-22 12:14:19

标签: javascript angularjs asp.net-mvc internet-explorer pdf.js


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

2 个答案:

答案 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');
   })();
}