不允许将顶部框架导航到数据 URL:JsPDF
Not allowed to navigate top frame to data URL: JsPDF
try {
var a;
var b = new jsPDF("p", "pt", "a3");
var c = document.getElementById("leftPieCanvas").toDataURL("image/png");
b.addImage(c, "PNG", 265, 60);
a = document.getElementById("rightPieCanvas").toDataURL("image/png");
b.addImage(a, "PNG", 205, 440);
if ($("#sales_table").length) {
var d = tableToJson($("#sales_table").get(0));
b.setFont("helvetica");
b.setFontType("bold");
b.setFontSize(9);
$.each(d, function(a, c) {
$.each(c, function(c, d) {
b.cell(40, 830, 55, 20, d, a);
});
});
}
b.output("dataurlnewwindow");
} catch (e) {
alert(e);
}
以上代码在 firefox 中有效,但在 chrome 中无效,我 googled 得到了使用 iframe 的建议,所以我创建了 iframe 但无法将此代码放在上面的代码中,任何人都可以请建议我如何将以下代码添加到上面的代码中,以便我也可以在 google chrome 中呈现 PDF。
var html = '<html>' +
'<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style>' +
'<body>' +
'<iframe src="' + url + '"></iframe>' +
'</body></html>';
在纯 javascript 中,可能像这样工作:
html: <object id="obj" type="application/pdf"> </object>
js: document.getElementById('obj').data = doc.output("datauristring");
如有错误请指正
<iframe id="ManualFrame"
frameborder="0"
style="border:0"
allowfullscreen>
</iframe>
<script>
$(function () {
setManualFrame();
});
function setManualFrame() {
$("#ManualFrame").attr("height", screen.height);
$("#ManualFrame").attr("width", screen.width);
$("#ManualFrame").attr("src", "data:application/pdf;base64," + Your_PDF_Data);
}
</script>
try {
var a;
var b = new jsPDF("p", "pt", "a3");
var c = document.getElementById("leftPieCanvas").toDataURL("image/png");
b.addImage(c, "PNG", 265, 60);
a = document.getElementById("rightPieCanvas").toDataURL("image/png");
b.addImage(a, "PNG", 205, 440);
if ($("#sales_table").length) {
var d = tableToJson($("#sales_table").get(0));
b.setFont("helvetica");
b.setFontType("bold");
b.setFontSize(9);
$.each(d, function(a, c) {
$.each(c, function(c, d) {
b.cell(40, 830, 55, 20, d, a);
});
});
}
//b.output('dataurlnewwindow');
var uri = b.output('dataurlstring');
openDataUriWindow(uri);
} catch (e) {
alert(e);
}
function openDataUriWindow(url) {
var html = '<html>' +
'<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style>' +
'<body>' +
'<iframe src="' + url + '"></iframe>' +
'</body></html>';
a = window.open();
a.document.write(html);
}
try {
var a;
var b = new jsPDF("p", "pt", "a3");
var c = document.getElementById("leftPieCanvas").toDataURL("image/png");
b.addImage(c, "PNG", 265, 60);
a = document.getElementById("rightPieCanvas").toDataURL("image/png");
b.addImage(a, "PNG", 205, 440);
if ($("#sales_table").length) {
var d = tableToJson($("#sales_table").get(0));
b.setFont("helvetica");
b.setFontType("bold");
b.setFontSize(9);
$.each(d, function(a, c) {
$.each(c, function(c, d) {
b.cell(40, 830, 55, 20, d, a);
});
});
}
b.output("dataurlnewwindow");
} catch (e) {
alert(e);
}
以上代码在 firefox 中有效,但在 chrome 中无效,我 googled 得到了使用 iframe 的建议,所以我创建了 iframe 但无法将此代码放在上面的代码中,任何人都可以请建议我如何将以下代码添加到上面的代码中,以便我也可以在 google chrome 中呈现 PDF。
var html = '<html>' +
'<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style>' +
'<body>' +
'<iframe src="' + url + '"></iframe>' +
'</body></html>';
在纯 javascript 中,可能像这样工作:
html: <object id="obj" type="application/pdf"> </object>
js: document.getElementById('obj').data = doc.output("datauristring");
如有错误请指正
<iframe id="ManualFrame"
frameborder="0"
style="border:0"
allowfullscreen>
</iframe>
<script>
$(function () {
setManualFrame();
});
function setManualFrame() {
$("#ManualFrame").attr("height", screen.height);
$("#ManualFrame").attr("width", screen.width);
$("#ManualFrame").attr("src", "data:application/pdf;base64," + Your_PDF_Data);
}
</script>
try {
var a;
var b = new jsPDF("p", "pt", "a3");
var c = document.getElementById("leftPieCanvas").toDataURL("image/png");
b.addImage(c, "PNG", 265, 60);
a = document.getElementById("rightPieCanvas").toDataURL("image/png");
b.addImage(a, "PNG", 205, 440);
if ($("#sales_table").length) {
var d = tableToJson($("#sales_table").get(0));
b.setFont("helvetica");
b.setFontType("bold");
b.setFontSize(9);
$.each(d, function(a, c) {
$.each(c, function(c, d) {
b.cell(40, 830, 55, 20, d, a);
});
});
}
//b.output('dataurlnewwindow');
var uri = b.output('dataurlstring');
openDataUriWindow(uri);
} catch (e) {
alert(e);
}
function openDataUriWindow(url) {
var html = '<html>' +
'<style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style>' +
'<body>' +
'<iframe src="' + url + '"></iframe>' +
'</body></html>';
a = window.open();
a.document.write(html);
}