通过JavaScript打印网页的子集
是否可以通过JS只打印DOM的一部分 如果唯一的方法是指定打印样式表,我假定打印样式表可以在浏览器打印功能调用之前立即动态应用?试一试:通过JavaScript打印网页的子集,javascript,printing,Javascript,Printing,是否可以通过JS只打印DOM的一部分 如果唯一的方法是指定打印样式表,我假定打印样式表可以在浏览器打印功能调用之前立即动态应用?试一试: self.printDomElement = function(selector) { var newWindow = window.open("", "Test", "width=500,height=500,scrollbars=1,resizable=1"); var sectionOfDom = $(selector); new
self.printDomElement = function(selector) {
var newWindow = window.open("", "Test", "width=500,height=500,scrollbars=1,resizable=1");
var sectionOfDom = $(selector);
newWindow.document.open();
for (var i = 0; i < sectionOfDom.length; i++) {
newWindow.document.write(sectionOfDom[i].innerHTML);
}
newWindow.document.close();
newWindow.print();
newWindow.close();
};
不,你不能及时加载。最好的办法是一直加载它。但是样式表必须是动态的,除非我对数据属性和属性选择器做了一些巧妙的操作。这将有助于了解你的最终游戏是什么。我想弹出窗口拦截器可能会导致这方面的问题。iframe也可以工作吗?
self.printDomElement = function(selector) {
var newWindow = window.open("", "Test", "width=500,height=500,scrollbars=1,resizable=1");
var sectionOfDom = $(selector);
newWindow.document.open();
for (var i = 0; i < sectionOfDom.length; i++) {
if ($(sectionOfDom[i]).is('iframe')) {
try {
newWindow.document.write(sectionOfDom[i].contentDocument.body.innerHTML);
} catch(err) {
console.log('Caught exception with message: [' + err.message + '] while trying to write content to print window.');
}
} else {
newWindow.document.write(sectionOfDom[i].innerHTML);
}
}
newWindow.document.close();
newWindow.print();
newWindow.close();
};