Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在用户打印时使用jQuery复制HTML_Javascript_Jquery_Html_Css_Printing - Fatal编程技术网

Javascript 在用户打印时使用jQuery复制HTML

Javascript 在用户打印时使用jQuery复制HTML,javascript,jquery,html,css,printing,Javascript,Jquery,Html,Css,Printing,我需要获取一个网页,当用户单击文件>打印或[cmd+p]时,复制一篇文章(HTML),并将新文章放置在原始文章旁边。这个想法是在网上显示一个列表,然后从网页上打印一个2页纸版本,可以切成两半:两个相同的列表,一张纸。我将打印样式表用于自定义纸张布局,并使用jquery复制HTML 我一直关注的是如何在用户看到“打印”对话框之前进行复制。我不希望在默认情况下网页上有两篇相同的文章。我还想在打印完成后删除重复的文章,但这可能没有那么重要 <script> /* instead of w

我需要获取一个网页,当用户单击文件>打印或[cmd+p]时,复制一篇文章(HTML),并将新文章放置在原始文章旁边。这个想法是在网上显示一个列表,然后从网页上打印一个2页纸版本,可以切成两半:两个相同的列表,一张纸。我将打印样式表用于自定义纸张布局,并使用jquery复制HTML

我一直关注的是如何在用户看到“打印”对话框之前进行复制。我不希望在默认情况下网页上有两篇相同的文章。我还想在打印完成后删除重复的文章,但这可能没有那么重要

<script>
/*  instead of window.onclick, is there an "on print" function? */
    window.onclick = function() {
        var $newArticle = $('article').clone();
        $($newArticle).css({'margin-left':'1.3cm'});
        $($newArticle).insertAfter("article");                 
        }
</script>

/*是否有“打印”功能代替window.onclick*/
window.onclick=function(){
var$newArticle=$('article').clone();
$($newArticle.css({'margin-left':'1.3cm');
$($newArticle).insertAfter(“article”);
}
谢谢你的建议

我不希望在默认情况下网页上有两篇相同的文章

不需要JavaScript!将文章在页面中放置两次,并使用CSS将其中一篇隐藏:

article.copy {
    display: none;
}
然后,使用另一个CSS规则,在打印页面上显示文章:

@media print {
    article.copy {
        display: block;
    }
}


不幸的是,
@media
在IE8及以下版本中似乎不起作用。

您是否可以将迄今为止的代码添加到JSFIDLE?article.copy是否需要复制/粘贴HTML?取决于您生成内容的方式。要么生成两次,要么用JavaScript克隆元素。