【发布时间】:2018-08-23 00:12:51
【问题描述】:
我正在使用 Bootstrap 开发一个系统,但在打印某些表格时遇到了问题。背景颜色未显示在屏幕上。
我终于找到了解决 html2canvas 问题的方法。
我可以简单地在我的 html 上查询选择一个元素,html2canvas 会在画布上“绘制”它,它会完全按照屏幕上显示的方式打印。
使用以下代码:
html2canvas(document.querySelector("#capture")).then(canvas => {
document.body.appendChild(canvas)
});
我的问题是:我可以将 querySelector 与从 jQuery $.ajax 调用中获得的响应变量一起使用吗?
我尝试了很多方法,但都没有成功。这是一个例子:
$.ajax({
url: 'url',
type: 'POST',
success: function (data) {
html2canvas($(data).querySelector("#selector")).then(canvas => {
let wnd = window.open("about:blank", "");
wnd.document.body.appendChild(canvas);
});
}
});
Andy 想知道如何实现这一点?
【问题讨论】:
-
什么是
data?它是一个 DOM 节点吗?我对此表示怀疑,所以你需要做一个。 -
data 是一个包含 html 代码的字符串...如何使它成为 DOM 节点?
-
jquery 集合没有 .querySelector 方法...它们确实有一个类似的方法
.find,但即便如此,它也只有在您要查找的元素是一个根节点。如果根节点是目标,则根本不需要.find。
标签: javascript jquery html ajax html2canvas