我想打印 div 内容,同时将 css 应用于 div 及其内部 html。
我正在使用 jQuery Print Element,但它剥离了 css。
怎么样
function printDiv(id) {
var html = "";
$('link').each(function() { // find all <link tags that have
if ($(this).attr('rel').indexOf('stylesheet') !=-1) { // rel="stylesheet"
html += '<link rel="stylesheet" href="'+$(this).attr("href")+'" />';
}
});
html += '<body onload="window.focus(); window.print()">+$("#"+id).html()+'</body>';
var w = window.open("","print");
if (w) { w.document.write(html); w.document.close() }
}
https://github.com/jasonday/printThis
我为这个确切的场景创作的插件。
使用 .html() 方法。它将抓取所选元素内的所有 HTML。
var myDivContents = $("div").html();
您可以访问 div 的所有内容
var $contents = $( 'div' ).contents();
这包括所有标签和文本。
如果您只对可以使用的代码感兴趣
var htmlContents = $( 'div' ).html();
这将为您提供字符串形式的内容。
要打印出代码,只需将其插入另一个元素
$( 'div.new' ).append( $contents );
$( 'div.new' ).html( htmlContents );
如果某些样式未应用,可能它们依赖于包装元素及其类,这是需要了解的重要事项。