尝试使用jsPDF时,我收到了错误
Error in function saveAs: n(...).createObjectURL is not a function
我的代码很简单:
HTML
<button class="generatePdf"> click me </button>
JS
//Generate PDF
$(document).on('click', '.generatePdf', function() {
var doc = new jsPDF();
doc.text(20,20,'Some dummy text');
doc.save('print.pdf')
});
我在Laravel中使用它与Bower和Elixir(gulp)但是我得到了同样的错误:
Error in function FileSaver@http://mrrio.github.io/jsPDF/dist/jspdf.debug.js:5875:18: get_URL(...).createObjectURL is not a function
如果使用
<script src="http://mrrio.github.io/jsPDF/dist/jspdf.debug.js"></script>
我接受jsPdf的替代方案,如果你有的话。 它发生在Firefox 44.0.2和Chromium 48.0.2564.116
中答案 0 :(得分:0)
在阅读this问题后,我插入了给定的代码
<script>(function () {
var _createObjectURL = window.URL.createObjectURL;
Object.defineProperty(window.URL, 'createObjectURL', {
set: function (value) {
console.trace('set createObjectURL')
_createObjectURL = value;
},
get: function () {
console.trace('get createObjectURL')
return _createObjectURL;
}
})
})();
(function () {
var _URL = window.URL;
Object.defineProperty(window, 'URL', {
set: function (value) {
console.trace('set URL')
_URL = value;
},
get: function () {
console.trace('get URL')
return _URL;
}
})
})(); </script>
并发现问题出现在eqneditor
的{{1}}插件中。我删除了插件,一切正常。
答案 1 :(得分:0)
我能够通过取消设置全局URL来解决它:
let oldURL = undefined;
if (URL) {
oldURL = URL;
URL = undefined;
}
// file saving code
if (oldURL) {
URL = oldURL;
}