2017-05-05 1 views
1

J'imprime un code HTML récupéré à partir de l'extrémité arrière.Comment arrêter le bloqueur de fenêtres contextuelles lors de l'utilisation de window.open

printHtml(htmlTemplate) { 
    var printWindow = window.open('', '_blank'); 
    printWindow.document.write(htmlTemplate); 
    setTimeout(function() { 
     printWindow.document.close(); // necessary for IE >= 10 
     printWindow.focus(); // necessary for IE >= 10*/ 
     printWindow.print(); 
     printWindow.close(); 
    }, 1000); 
} 

Cela fonctionne très bien dans tous les navigateurs et seule chose que je ne peux pas comprendre comment arrêter le bloqueur de pop-up. Impossible d'utiliser printWindow.location car le code HTML est présent dans une variable.

+0

Comment ouvrez-vous cette fenêtre contextuelle? Après une action de l'utilisateur ou autre chose? _ "Un navigateur ouvrira un onglet/popup sans l'avertissement de blocage de popup si la commande pour ouvrir l'onglet/popup provient d'un événement de confiance." _ Voir [cette question] (http://stackoverflow.com/questions/7139103/open-page-in-new-window-without-popup-blocking) pour plus de détails. – abhishekkannojia

+0

@abhishekkannojia Je déclenche ceci à partir d'un clic de bouton et la fenêtre d'impression du navigateur est ouverte. – PAVITRA

Répondre

0

Pour toute personne ayant la même question,
question a été que j'ai appelé cette méthode dans une promesse et quand cela est fait, window.open est d'avoir une nouvelle instance de fenêtre qui le bloqueur de pop-up. Cela a bien fonctionné quand j'affecté,

var printWindow = window.open('', '_blank'); 

à une variable globale avant de passer à la promesse et utilisé qu'à l'intérieur de la méthode.