我在Angular JS中有一个应用程序,它正在使用JSPDF。
问题是生成PDF可以在Chrome,Firefox和Safari中运行,但根本不在IE中运行。在那里,我收到以下错误:
SCRIPT438: Object doesn't support property or method 'trimLeft'
jspdf.plugin.from_html.js, line 71 character 4
用于生成PDF的js文件中的代码:
function mainControl($scope) {
$scope.showtooltip = false;
$scope.value = 'Generate PDF';
$scope.hideTooltip = function() {
$scope.showtooltip = false;
}
$scope.toggleTooltip = function(e) {
e.stopPropagation();
$scope.value = 'HERE';
$scope.showtooltip = !$scope.showtooltip;
}
}
function printPDF() {
var doc = new jsPDF();
var elementHandler = {
'#oi' : function(element, renderer) {
return true;
}
};
var source = window.document.getElementsByTagName("body")[0];
doc.fromHTML($('#content').get(0), 10, 15, {
'width' : 190
});
doc.setFont("helvetica");
doc.setFontType("normal");
doc.setTextColor(198, 0, 24);
doc.setFontSize(10);
doc.text(10, 10, 'xxxx');
doc.output("dataurlnewwindow")
}
var Show = {
getFromPDF : function() {
$('#btn-pdf').click(function() {
printPDF();
});
}
}
$(function() {
Show.getFromPDF();
});
答案 0 :(得分:0)
IE不支持String.prototype的非标准函数trimLeft
,以获取更多信息检查this
这是一种解决方法:
<!--[IF IE]>
<script type="text/javascript">
if (typeof String.prototype.trimLeft !== 'function') {
String.prototype.trimLeft = function() {
return this.replace(/^\s*/,'');
}
}
</script>
这是一个有效的演示:
if (typeof String.prototype.trimLeft !== 'function') {
String.prototype.trimLeft = function() {
return this.replace(/^\s*/, '');
}
}
var myString = " YEBO zsdsad sadsad ";
console.log("test");
console.log(myString.trimLeft());