jsPDF "Object expected" 尝试保存 PDF 时在 IE 中出现异常
jsPDF "Object expected" Exception in IE when trying to save the PDF
尝试保存 PDF 文件时,出现以下堆栈跟踪并且文件未下载:
TypeError: Object expected
at API.save (http://localhost:8080/applications/lib/jspdf/jspdf.debug.js:3648:11)
at Anonymous function (http://localhost:8080/applications/js/<my_custom_js_file>.js:288:12)
at Anonymous function (http://localhost:8080/applications/lib/angular-1.5.8/angular.min.js:158:482)
at e (http://localhost:8080/applications/lib/angular-1.5.8/angular.min.js:45:442)
at Anonymous function (http://localhost:8080/applications/lib/angular-1.5.8/angular.min.js:48:300)
也尝试了一个简单的例子并得到了相同的结果:
var doc = new jsPDF();
doc.text("hello", 20, 20);
doc.save("table.pdf");
IE 不支持原生 Promise。因此,初始化脚本在版本 1.5.3 的第 12016 行失败:
SCRIPT5009: 'Promise' is undefined
jspdf.debug.js (12016,5)
之后,脚本不再初始化所需的上下文。
修复应该是第 3 方承诺库 - 我已经通过在包含 jspdf.debug.js 之前包含以下资源来解决它:
<script type="text/javascript" src="/applications/lib/ie-promise/es6-promise.js"></script>
<script type="text/javascript" src="/applications/lib/ie-promise/es6-promise@4/dist/es6-promise.auto.js"></script>
尝试保存 PDF 文件时,出现以下堆栈跟踪并且文件未下载:
TypeError: Object expected
at API.save (http://localhost:8080/applications/lib/jspdf/jspdf.debug.js:3648:11)
at Anonymous function (http://localhost:8080/applications/js/<my_custom_js_file>.js:288:12)
at Anonymous function (http://localhost:8080/applications/lib/angular-1.5.8/angular.min.js:158:482)
at e (http://localhost:8080/applications/lib/angular-1.5.8/angular.min.js:45:442)
at Anonymous function (http://localhost:8080/applications/lib/angular-1.5.8/angular.min.js:48:300)
也尝试了一个简单的例子并得到了相同的结果:
var doc = new jsPDF();
doc.text("hello", 20, 20);
doc.save("table.pdf");
IE 不支持原生 Promise。因此,初始化脚本在版本 1.5.3 的第 12016 行失败:
SCRIPT5009: 'Promise' is undefined
jspdf.debug.js (12016,5)
之后,脚本不再初始化所需的上下文。
修复应该是第 3 方承诺库 - 我已经通过在包含 jspdf.debug.js 之前包含以下资源来解决它:
<script type="text/javascript" src="/applications/lib/ie-promise/es6-promise.js"></script>
<script type="text/javascript" src="/applications/lib/ie-promise/es6-promise@4/dist/es6-promise.auto.js"></script>