64 votes

window.print () ne fonctionne pas dans IE

Je fais quelque chose comme ça en javascript pour imprimer une section de ma page en cliquant sur un lien

 function printDiv() {
 var divToPrint = document.getElementById('printArea');
 newWin= window.open();
 newWin.document.write(divToPrint.innerHTML);
 newWin.print();
 newWin.close();
}
 

Cela fonctionne très bien dans Firefox mais pas dans IE.

Quelqu'un pourrait-il s'il vous plaît aider

133voto

Pratik Points 751

Ajoutez ces lignes après newWin.document.write(divToPrint.innerHTML)

 newWin.document.close();
newWin.focus();
newWin.print();
newWin.close();
 

Ensuite, la fonction d'impression fonctionnera dans tous les navigateurs ...

8voto

sarkiroka Points 295
function printDiv() {
    var divToPrint = document.getElementById('printArea');
    newWin= window.open();
    newWin.document.write(divToPrint.innerHTML);
    newWin.location.reload();
    newWin.focus();
    newWin.print();
    newWin.close();
}

4voto

Kyle Points 2498

J'ai déjà eu ce problème auparavant, et la solution consiste simplement à appeler window.print () dans IE, par opposition à l'appel à partir de l'instance de window:

 function printPage(htmlPage)
    {
        var w = window.open("about:blank");
        w.document.write(htmlPage);
        if (navigator.appName == 'Microsoft Internet Explorer') window.print();
        else w.print();
    }
 

3voto

Greg Points 11

Attendez un peu avant de fermer la fenêtre!

 if (navigator.appName != 'Microsoft Internet Explorer') {
    newWin.close();
} else {
    window.setTimeout(function() {newWin.close()}, 3000);
}
 

2voto

Chilln Points 73

Je ne suis pas sûr mais je pense que cela se passe parce que les règles de sécurité d'internet explorer...

Si vous appelez une fonction print (), il demande à l'utilisateur manuellement s'il veut permettre active scripting, si il clique sur la barre jaune et sélectionne "Oui", la boîte de dialogue imprimer s'affiche. Si vous cliquez sur " Non " ou tout simplement ne rien faire c'est la non-exécution des pièces qui sont considérés comme active scripting ou autres relatives à la sécurité des fonctions javascript.

Dans votre exemple, l'ouverture de la fenêtre, puis les imprimer() est appelée, la confirmation de la barre s'affiche (rien n'est sélectionné, en fait, rien ne peut être sélectionné en raison de la courte période de temps), newWin.close() est appelée, la fenêtre se ferme.

Vous devriez essayer d'ajouter de la page pour les sites de confiance dans internet explorer ou modifier les paramètres de sécurité.

Il y a peut être un moyen de gérer les politiques de sécurité dans le script lui-même, mais je ne sais pas beaucoup sur internet explorer Politiques de Sécurité.

Espérons que cette aide

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X