Fonction d'impression dans google Chrome ne fonctionne plus

Notre site web dispose d'une fonction par laquelle un profil de membre peut être imprimé. La façon dont il fonctionne, c'est qu'une fonction javascript est attaché à un bouton via un onsubmit. La fonction javascript utilise une fenêtre.ouvert à rouvrir la page dans un mode spécial, qui affiche à nouveau une version imprimable de la page.

Cette fonctionnalité a été mise en place depuis 2008, et fonctionne dans tous les navigateurs. À l'exception d'environ une semaine ou deux il ya, il a cessé de travailler en Chrome. Avec Chrome, ce qui se passe, c'est que l'ouverture de la fenêtre n'est ouverte, mais alors une autre fenêtre vide s'ouvre brièvement, puis le toutes proches.

Dans la recherche de la discussion de cette question, j'ai été incapable de trouver la cause exacte, mais n'a trouver quelque chose qui dit qu'un "return false" doit être ajouté à la onsubmit. J'ai essayé d'ajouter que, mais il n'a pas aidé.

Voici ce que le onsubmit ressemble:

<button onclick="PrintEmailSubmit('print');">Print Profile</button>

Voici ce que le code qui ouvre la fenêtre ressemble à ceci:

window.open('print-email-profile.php?mode=' + mode,'','width=' + width + ',height=' + height + ',scrollbars=yes,location=0,menubar=1,status=0,toolbar=0')

Alors qu'il ne devrait pas être nécessaire de voir, ici, c'est l'ensemble de la fonction PrintEmailSubmit():

/*
 *  called by view-profile.php
 */
function PrintEmailSubmit(mode)
{
    var width;
    var height;
    switch(mode)
    {
        case 'print':
            width = 850;
            height = 1000;
            break;

        case 'email':
            width = 400;
            height = 120;
            break;

        default:
            alert('Error: invalid calling sequence -- should not happen!');
            exit;
    }
    window.open('print-email-profile.php?mode=' + mode,'','width=' + width + ',height=' + height + ',scrollbars=yes,location=0,menubar=1,status=0,toolbar=0');
}

Et enfin, ce qui rend ce travail est que la version spéciale de la page a la suite ajouté à la balise body:

<body onload="window.print();window.close();">

Comme indiqué ci-dessus, la fonction continue à travailler dans IE et Firefox. Juste Chrome est d'avoir ce problème.

Des idées?

Pourrait-il en être de Chrome bloqueur de fenêtres qui bloque? Vous devriez recevoir une notification ensuite, la console de dire que toutes les erreurs?
Si c'est pas trop long, veuillez inclure le JS pour PrintEmailSubmit
Cela fonctionne sans fenêtre.fermer? Si, ensuite, vous définissez le délai pour la fermeture de la fenêtre ou de l'utilisation du bouton à la place.
Badr Hari: ce qui est bizarre, c'est qu'il a bien fonctionné pendant 6 ans dans tous les navigateurs, mais maintenant ne fonctionne tout simplement pas pour Chrome. En prenant de la fenêtre.près de la body onload ne permettent en réalité de la fonction d'impression de travailler pour google Chrome, mais il laisse l'impression respectueux de la fenêtre ouverte. Donc, ce pointe dans la direction d'une solution. Je voudrais juste avoir pour obtenir la fenêtre.proche d'être là, mais pas déclenché prématurément
Diodeus: je n'ai pas présent, car il ne serait pas trop utile. Mais puisque vous le demandez, je vais l'ajouter à la question d'origine.

OriginalL'auteur Jeffrey Simon | 2013-08-14