web-dev-qa-db-fra.com

L'utilisation de getPreventDefault () est obsolète. Utilisez defaultPrevented à la place

Je veux imprimer la page de confirmation sur la page de chargement dans firefox

Firefox affiche l'erreur suivante.

L'utilisation de getPreventDefault() est obsolète. Utilisez defaultPrevented à la place de la ligne source . Error:

src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;

NS_ERROR_NOT_AVAILABLE: Le composant a renvoyé le code d'erreur: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMWindow.print] ligne source de l'erreur:


print();

code:

$(document).ready(function() {
    print_doc();
    $("#Submit").click(function() {
        $("#goBack").hide();
        $("#printRow").hide();
        print();
        $("#goBack").show();
        $("#printRow").show();
    });
});

function print_doc() {
    $("#goBack").hide();
    $("#printRow").hide();
    print();
    $("#goBack").show();
    $("#printRow").show();
}

Je veux imprimer mon reçu avant de montrer les identifiants "goBack" et "printRow" mais ne fonctionne pas

20
Mian Anjum

vous pouvez créer un nouveau css avec type de support print

<style media="print">
#goBack,#printRow {
   display:none;
}
</style>

utilisé ce code

impression : 

Destiné aux documents imprimés (s'applique également aux documents affichés en mode d'aperçu avant impression).

Type de média CSS

4
Shakti Patel

Mettez à niveau vos deux versions de Firefox & jQuery version de 1.6.4 vers une version plus récente.

Cela a été classé comme un bug dans Firefox dans FF11 et corrigé en conséquence:

Bogue n ° 707677: getPreventDefault (); obsolète

Comme après tout, les messages d'erreur font référence à des lignes de code source qui n'ont aucun lien avec votre code.

9
MackieeE

Je reçois également cet avertissement dans les derniers fichiers FF et jQuery. Ne vous inquiétez pas, cela sera corrigé en amont avant que cela ne pose problème.

En ce qui concerne votre code, essayez ceci:

$(document).ready(function() {
    $("#Submit").click(function() {
        var btns = $('#goBack, #printRow');
        btns.hide(function () {
            window.print();
            btns.show();
        });
    });
});

.hide () est asynchrone, ce qui signifie que la ligne de code suivante peut être exécutée avant que le navigateur ne puisse l'exécuter. Vous pouvez donc imprimer avant que les éléments ne soient masqués. En collant l’impression à l’intérieur du rappel .hide (), vous êtes certain qu’elle est masquée lors de l’impression.

Comme mentionné dans une autre affiche, les types de média CSS sont probablement un meilleur moyen de le faire:

@media print {
  #goBack, #printRow {
     display: none;
  }
}
4
Matt

il a résolu en remplaçant la dernière version de js, visitez le site jquery et remplacez-le par la dernière jquery si nécessaire .map js aussi

0
Bikram Shrestha