2015-04-28 29 views
8

Ive baskı olmuştur Sayfamı Tıklandı edilirse belirleyin:Google Chrome'un Baskı Önizleme Baskı/İptal Düğmesi aşağıdaki kodu kullanarak

window.print(); 

aşağıda bir görüntü krom tarayıcı benziyor Google'da hangi baskı önizleme. İki ana düğme vardır: print ve cancel.

enter image description here

Ben kullanıcı print veya cancel butonuna tıklayın olsaydı bilmek istiyorum.

$('button > .cancel').click(function (e) {     
     alert('Cancel'); 
}); 

$('button > .print').click(function (e) {     
     alert('Print'); 
}); 

hiçbir şans ile yukarıdaki kodu çalıştı: Baskı Önizleme

HTML Kodu:

<button class="print default" i18n-content="printButton">Print</button> 
<button class="cancel" i18n-content="cancel">Cancel</button> 

jQuery Kodu Benim yaptığım Jquery kullanmaktır. Nerede eksikim?

+0

Bir yan yorum olarak, 'button> .cancel' iptal düğmesini seçmemiş, ancak bir düğmenin içinde' cancel' class'lı bir öğe seçmiş olabilir. Sağ seçici “düğme” olurdu.cancel' (ama yine de işe yaramaz) –

+0

Ayrıca çapraz tarayıcı çözümü hakkında bilmek istiyorum herhangi bir –

+0

U ne bulmak istiyor ??? arkadaki kodlama baskı mı? – Fiido93

cevap

8

Sen directtly Normal bir web sayfasından (bu durumda iletişim baskı) Chrome'un iç pencereleri erişemez.

(function() { 

     var beforePrint = function() { 
      alert('Functionality to run before printing.'); 
     }; 

     var afterPrint = function() { 
      alert('Functionality to run after printing'); 
     }; 

     if (window.matchMedia) { 
      var mediaQueryList = window.matchMedia('print'); 

      mediaQueryList.addListener(function (mql) { 
       //alert($(mediaQueryList).html()); 
       if (mql.matches) { 
        beforePrint(); 
       } else { 
        afterPrint(); 
       } 
      }); 
     } 

     window.onbeforeprint = beforePrint; 
     window.onafterprint = afterPrint; 

    }()); 

Veya Baskı önizlemesi açıldığında bir şeyler yapmak istiyorsanız, aşağıdakini deneyebilirsiniz.

$ (belge) .bind ("keyUp keydown", işlevi (e) { halinde (e.ctrlKey & & e.keyCode == 80) { setTimeout (fonksiyonu() {CallAfterWindowLoad(); }, 5000); , true; } });

function CallAfterWindowLoad() 
    { 
     alert("Open and call"); 
    } 

Referans: Eğer, etkinliği tıklayın Bu iki düğme için çalıştığınız için gereksinimi sağlamak sonra size bunun için alternatif bir çözüm sağlayabilir eğer How to capture the click event on the default print menu called by Javascript window.print()

olabilir.

0

Bu hile yapmalıdır. Html dosyasında bulunan jQuery v2.2.0 kullanıyorum.

$("#print").click(function() { // calls the id of the button that will print 
    document.body.style.visibility = 'hidden'; //code for hiding the body 
    document.getElementById('printthis').style.visibility = 'visible'; // div to be printed 
    document.getElementById('printthis').style.position = 'absolute'; //some code/css for positioning. you can adjust this 
    document.getElementById('printthis').style.top = '40px'; 
    document.getElementById('printthis').style.left = '0px'; 
    if (print()) { // shows print preview. 

    } else { // else statement will check if cancel button is clicked. 
     document.body.style.visibility = 'visible'; 
     document.getElementById('printthis').style.position = ''; 
     document.getElementById('printthis').style.top = ''; 
     document.getElementById('printthis').style.left = ''; 
     alert("Print Canceled"); 
    } 
}); 

Sanırım bu, html'nizdeki belirli div'leri yazdırmanın bir yolu olarak kullanılabilir. Sadece body öğesini gizleyin ve sadece yazdırmak istediğiniz div'u bazı konumlandırma css ile gösterin. Umarım seninkinde çalışır. Denedim ve bunun benim için çalıştığını söyleyebilirim.

İlgili konular