J'ai un bouton d'impression avec id = "print_req" code>. J'ai écrit du code JavaScript pour imprimer une page, qui est déclenchée en cliquant sur ce bouton, et je souhaite également masquer ce bouton avant d'imprimer et le montrer après l'impression entier. Je veux dire ne pas imprimer le bouton dans mon document imprimé. Voici mon code: $(document).ready(function(){
$("#print_req").click(function(){
$("#print_req").css("display","none");
window.print();
});
$("#print_req").css("display","block");
return false;
});
6 Réponses :
Le problème est que vous ne pouvez pas savoir lorsque l'impression est terminée à l'aide de JavaScript. Il n'y a pas d'événement qui sera déclenché pour l'informer. P>
Pour des raisons de sécurité JavaScript est exécutée dans un environnement de sandbox à l'intérieur du navigateur limitant son accès à toutes les ressources système. P>
Vous ne pouvez pas utiliser PURE JavaScript. Il existe des contrôles ActiveX qui permet de gérer l'impression, mais ils fonctionnent uniquement sur IE et l'utilisateur doit accepter explicitement de les installer.
Oh!! J'ai trouvé ma propre réponse !!! Si je mettez l'image de ce bouton comme fond de la balise HTML , il n'enverra pas automatiquement à l'imprimante! :)
@armin, c'est génial et utile aux autres personnes ayant le même problème. Vous auriez dû expliquer dans votre question que ce dont vous avez besoin est d'exclure le bouton d'impression lorsque la page est imprimée.
Je le sais et je l'ai fait mon pote.Si ma question est ambiguë s'il vous plaît dites-moi :)
C'est une mauvaise réponse quand il y a une meilleure façon de le faire. Les arrière-plans seront apparus si l'utilisateur les a permis d'imprimer dans leurs paramètres de navigateur. Et ActiveX est horrible. :)
La boîte de dialogue Imprimer fait partie du système d'exploitation. JavaScript ne peut accéder que des éléments qui font partie de la page Web - tout d'autre serait une infraction de sécurité majeure. P>
Vous allez à ce faux. Vous ne devriez pas afficher et masquer le bouton avec JavaScript ou utiliser une image d'arrière-plan pour le faire. Vous devez utiliser une feuille de style d'impression qui vous permettra d'appliquer différents styles à la page lorsqu'il est imprimé. Dans votre cas, vous définiriez l'affichage sur Aucun [ou visibilité à caché] dans cette feuille de style.
Donc, vous ajoutez une feuille de style avec le type de support pour imprimer p> dans ce fichier imprimé.css, vous masquez le bouton P> .printButtonClass{ display : none }
Votre droite, mais j'imprime une Div qui est dans une page que le bouton existe! Je veux dire que chaque style sur la boîte d'impression affectera le bouton de la charge de chargement! Par exemple: Si je fais votre suggestion, il va cacher le bouton au début!
Et aussi je ne veux pas faire un travail aussi complexe pour faire cette chose simple. Mais merci mon pote
Cela ne cachera pas le bouton jusqu'à ce que la page soit imprimée ou affichée dans l'aperçu d'impression. Il n'effectue que le style du bouton que vous mettez une classe sur. Il n'aura pas affecter la page dans de toute façon. Votre solution de la définition de l'image ajoute également plus de problèmes avec l'accessibilité et que si l'utilisateur a des images désactivées? Saviennent-ils à imprimer avec ce bouton? Je trouve de toute façon le bouton d'impression, car il y en a un intégré à mon navigateur.
@armin no, remarquez le media = "Imprimer" code> dans l'exemple ci-dessus. Cela signifie que ces styles ne seront utilisés que pour la version imprimée d'une page, elles seront ignorées (et le bouton sera visible) lorsque la page est à l'écran.
Oh, super .. :) J'ai tellement appris de vos explications. Merci beaucoup de copains, ça m'a vraiment aidé.yeah, votre réponse est meilleure que la mienne, je ferai votre offre :)
C'est facile, veuillez simplement l'utiliser, appliquez la classe NOPRINT sur votre bouton.
@media print {
.noprint{
display: none !important;
}
}
Cette réponse est bien meilleure que la réponse acceptée car elle ne nécessite pas de feuille de style supplémentaire.
function printFunction() {
var restoreoriginalpage = document.body.innerHTML;
$('#print-button').css('visibility', 'hidden'); //hiding print button before it prints
var printcontent = document.getElementById("content").innerHTML;
document.body.innerHTML = printcontent;
window.print();
document.body.innerHTML = restoreoriginalpage; //restore original page
}
Faites simplement cela ...
$ (document) .Ready (fonction (fonction () { p>
Repenser votre réponse puisqu'il y a une meilleure façon de le faire. L'utilisation d'une image d'arrière-plan n'est pas une bonne solution.