2010-09-16 2 views
0

J'ai deux sections sur ma page Web, SectionA et SectionB (2 tableaux HTML).Comment imprimer l'une des deux sections d'une page en javascript

Je souhaite pouvoir imprimer toute la page, uniquement SectionA ou seulement SectionB. J'ai déjà un fichier CSS avec media="print" et j'utilise window.print()

Pour imprimer la page entière, utilisez le bouton d'impression/élément de menu de votre navigateur.

Pour imprimer uniquement SectionA:

function PrintSectionA() 
{ 
    $('#SectionA').removeClass('hideFromPrint'); 
    $('#SectionB').addClass('hideFromPrint'); 
    window.print(); 
} 

et le contraire pour PrintSectionB() Yeah! ça marche ... presque. Si j'essaie d'imprimer seulement SectionA, puis la page entière, je reçois seulement SectionA, parce que SectionB a toujours la classe hideFromPrint.

Ce que je veux est:

function PrintSectionA() 
{ 
    $('#SectionA').removeClass('hideFromPrint'); 
    $('#SectionB').addClass('hideFromPrint'); 
    window.print(); 
    $('#SectionB').removeClass('hideFromPrint'); 
} 

Mais window.print(); Rendements avant le document est envoyé à l'imprimante. Alors PrintSectionA() imprime en fait tout maintenant :(.

est-il un moyen de le faire fonctionner?

Je crois avoir vu quelque part que je peux forcer un saut de page en CSS, je pourrais demander à l'utilisateur d'imprimer l'ensemble la page mais seulement sélectionner la 1ère ou 2ème page ... pas aussi amusant!

+0

Peut-être une meilleure solution consiste à créer deux CSS fichiers pour l'impression et juste changer le lien vers le fichier CSS d'impression quand un mais Ton ou le lien est cliqué. –

Répondre

1

Qu'en est-il définir trois fonctions (avec un être « Imprimer tous »)?

function PrintSectionA() 
{ 
    $('#SectionA').removeClass('hideFromPrint'); 
    $('#SectionB').addClass('hideFromPrint'); 
    window.print(); 
} 

function PrintSectionB() 
{ 
    $('#SectionB').removeClass('hideFromPrint'); 
    $('#SectionA').addClass('hideFromPrint'); 
    window.print(); 
} 

function PrintAll() 
{ 
    $('#SectionA').removeClass('hideFromPrint'); 
    $('#SectionB').removeClass('hideFromPrint'); 
    window.print(); 
} 
+0

merci, mais je n'ai pas un bouton "imprimer tout" sur ma page web. La fonction PrintAll devrait être appelée par le navigateur avant l'impression (en utilisant l'option de menu Fichier> Imprimer) et je ne pense pas qu'il y ait un événement pour onPrint. Je verrai avec mon patron, si je peux ajouter une impression tout bouton ... – Guillaume

Questions connexes