单击打印按钮时如何防止打开新选项卡

时间:2014-10-16 11:06:35

标签: javascript jquery css-tables

我已经创建了一个打印html表的应用程序,应用程序工作正常,但我现在面临的问题是,当我单击打印选项时,会显示一个显示数据的新选项卡。如何防止该标签打开和显示?

function printData()
{
   var divToPrint = document.getElementById("printTable");
   var divToPrint2 = $(divToPrint).clone().find('th:first, td:first-child').remove().end().prop('outerHTML');
   newWin= window.open("");
    var header = '<style>table th, table td {border-color: black;border-style: solid;border-width: 1px 1px 1px 1px;}table {border-collapse: collapse;}</style>';
    divToPrint2=header+divToPrint2;
   newWin.document.body.innerHTML = divToPrint2;
   newWin.document.head.innerHTML = header;
   newWin.print();
}

$('button').on('click',function(){
printData();
})

Working Demo

有人可以告诉我一些解决方案吗?

3 个答案:

答案 0 :(得分:1)

添加_self属性会使其在同一个标​​签上打开:

window.open("www.youraddress.com","_self")

答案 1 :(得分:0)

printData()功能创建新窗口中。我认为这个功能没有必要。您可以编写print css,例如:

@media print {
    // css code will be here. You can hide buttons and table column or something here.
}

然后你可以拨打window.print()。 所以我建议这段代码:

$("button").on("click", function(){
  window.print();
})

答案 2 :(得分:0)

使用如下

newWin= window.open("","_self");

而不是

newWin= window.open("");

DEMO