2013-10-04 7 views
20

chcę wydrukować stronę odbioru na stronie obciążenia w firefoxUżywanie metody getPreventDefault() jest przestarzałe. Zastosowanie defaultPrevented zamiast

Firefox pokazuje następujący błąd ..

Zastosowanie getPreventDefault() jest przestarzała. Zamiast tego użyj defaultPrevented. błąd liniowe źródło:

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

NS_ERROR_NOT_AVAILABLE: Składnik zwrócony kod błędu: 0x80040111 linii (NS_ERROR_NOT_AVAILABLE) [nsIDOMWindow.print] Źródła błędów:


print(); 

Kod:

$(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(); 
} 

Chcę drukować pokwitowania przed pokazaniem "goBack" i "printRow" ID, ale nie działa

+0

Lepiej również użyć window.print(); - Co więcej, aktualny kod Drukuje ekran dwukrotnie – MackieeE

+0

Zadajesz tutaj dwa różne pytania. Jeśli nie zamierzasz zmienić tytułu swojego posta, powinieneś zaakceptować odpowiedź MackieeE poniżej. – MusikPolice

Odpowiedz

4

można utworzyć nowy css z typem mediów drukowanych

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

używany ten kod

druk:

Przeznaczona do drukowanych dokumentów (dotyczy docs oglądane w trybie podglądu wydruku także).

CSS Media Type

+0

Chcę pokazać te id po wydrukowaniu # goBack, # printRow, ale pokazujące użycie metody getPreventDefault() jest przestarzałe. Zamiast tego użyj defaultPrevented. źródło błędu: \t src.getPreventDefault && src.getPreventDefault())? returnTrue: returnFalse; –

9

Upgrade Zarówno wersje Firefox & jQuery wersji z 1.6.4 do nowszej wersji.

ten został zgłoszony jako błąd w Firefoksie w FF11 & Patched wskutek:

Bug #707677: getPreventDefault(); deprecated

Jak po tym wszystkim, komunikaty o błędach odnoszą się do linii kodu źródłowego, które są całkowicie niezwiązane z kodem.

+0

"Uaktualnij wersje Firefoksa i jQuery z 1.6.4 do nowszej wersji" bardzo pomocna pełna - = - = - = - = - = - = - = - Również media Css pomogły mi @media print { #goBack, #printRow { display: none; } } –

+0

Ale to było '#goBack, #printRow {display: none; } "to naprawiło to dla ciebie? – MackieeE

+18

Otrzymuję to z jQuery 1.10.2, obecnie najnowszej z rodziny 1.x. –

4

Też otrzymuję to ostrzeżenie w najnowszym FF i jQuery. Nie przejmuj się, zostanie to naprawione, zanim spowoduje problemy.

chodzi o kodzie, spróbuj tego:

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

.hide() jest asynchroniczny, co oznacza, że ​​następna linia kodu mogą być wykonywane przed przeglądarka miał szansę, aby go wykonać. Więc możesz drukować zanim elementy zostaną ukryte. Naklejając druk wewnątrz wywołania zwrotnego .hide(), jesteś pewien, że jest on ukryty podczas drukowania.

Jako kolejny plakat wspomniano, choć typy mediów CSS są prawdopodobnie lepszym sposobem, aby to zrobić:

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

to rozwiązane poprzez zastąpienie najnowszej wersji js znaleźć w witrynie jQuery i zastąpić najnowszej jQuery jeżeli wymagane .map js też