2010-09-17 4 views
0

J'ai un code commefenêtre ouverte par window.open et l'imprimer avec la charge window.print

var windowObject = window.open('','windowObject','arguments...'); 
windowObject.document.write("<html><body onload="alert(1);window.print();alert(2);"><div>some html</div></body></html>"); 

Le problème est que tout fonctionne, sauf l'événement window.print (inclusifs, sur Firefox, il est travail).

Y a-t-il une solution de contournement?

Merci à l'avance, Gaurav

+0

Étrange. Ça va ... Pas d'erreurs? –

+0

La mise en évidence de la syntaxe corrige l'erreur. – Hello71

Répondre

1

Il est une question de citations: le guillemet après onload= termine la chaîne en cours d'écriture sur le document. Modifier les citations onload à guillemets simples. Vous devez également ajouter un appel à la méthode close() du document:

var windowObject = window.open('','windowObject','arguments...'); 
windowObject.document.write("<html><body onload='alert(1);window.print();alert(2);'><div>some html</div></body></html>"); 
windowObject.document.close(); 
+0

Salut merci mais ne fonctionne toujours pas. Maintenant mon code est comme ci-dessous – gaurav

+0

Ah oui, vous devez appeler 'windowObject.document.close()'. J'ai mis à jour ma réponse. –

0

Dans cette ligne, il semble que vous essayez d'utiliser des guillemets doubles imbriquées:

windowObject.document.write("<html><body onload="alert(1);window.print();alert(2);"><div>some html</div></body></html>"); 

Vous voulez plus susceptibles de faire:

windowObject.document.write('<html><body onload="alert(1);window.print();alert(2);"><div>some html</div></body></html>'); 
0

Le chrome ne nous permet pas de faire l'impression dans une fenêtre/onglet nouvellement ouvert. Vous pouvez réaliser votre besoin en ajoutant un nouveau fichier html comme ceci <body onload="window.print()"><div>Some html</div></body> et remplacez votre code par var windowObject = window.open('<path_to_your_new_html>','windowObject','arguments...');

Questions connexes