我有一个链接在我的网页打印网页。但是,在打印输出本身中也可以看到该链接。

是否有javascript或HTML代码,将隐藏链接按钮时,我点击打印链接?

例子:

 "Good Evening"
 Print (click Here To Print)

我想在打印文本“Good Evening”时隐藏这个“Print”标签。“打印”标签不应该显示在打印输出本身上。


当前回答

在样式表中添加:

@media print
{    
    .no-print, .no-print *
    {
        display: none !important;
    }
}

然后在你不想在打印版本中出现的HTML中添加class='no-print'(或将no-print类添加到现有的类语句中),比如你的按钮。

其他回答

@media print { .no-print { 可见性:隐藏; } } < div class = " no-print”> 不 < / div > < div > 是的 < / div >

正如Elias Hasle所说,JavaScript可以重写!important。所以,我用一个理论实现扩展了他的答案。

这段代码用no-print类标识所有元素,在打印前用CSS隐藏它们,打印后恢复原始样式:

var noPrintElements = [];

window.addEventListener("beforeprint", function(event) {
   var hideMe = document.getElementsByClassName("no-print");
   noPrintElements = [];
   Array.prototype.forEach.call(hideMe, function(item, index) {
      noPrintElements.push({"element": item, "display": item.style.display });
      item.style.display = 'none'; // hide the element
   });   
});

window.addEventListener("afterprint", function(event) {
   Array.prototype.forEach.call(noPrintElements, function(item, index) {
      item.element.style.display = item.display; // restore the element
   });      
   noPrintElements = []; // just to be on the safe side
});

Bootstrap 3有自己的类,叫做:

hidden-print

它的定义如下:

@media print {
  .hidden-print {
    display: none !important;
  }
}

你不需要自己定义它。


在Bootstrap 4和Bootstrap5中,这已更改为:

.d-print-none

diodus所接受的答案对我们中的一些人甚至所有人都不起作用。 我还是无法隐藏我的“打印这个按钮”,不让它印在纸上。

克林特Pachl通过添加调用css文件的小调整

      media="screen, print" 

不仅仅是

      media="screen"

就是解决这个问题。所以为了清晰起见,因为不容易看到克林特·帕切尔在评论中隐藏了额外的帮助。 用户应该在css文件中包含所需格式的“,print”。

     <link rel="stylesheet" href="my_cssfile.css" media="screen, print"type="text/css">

而不是默认的media = "screen"。

    <link rel="stylesheet" href="my_cssfile.css" media="screen" type="text/css">

我认为这解决了所有人的问题。

最好的方法是创建页面的“仅打印”版本。

哦,等等…现在已经不是1999年了。使用带有“display: none”的打印CSS。