2013-10-04 21 views
20

我想加載頁面上打印的收據頁面在Firefox不推薦使用getPreventDefault()。使用defaultPrevented代替

火狐顯示以下錯誤..

使用 getPreventDefault()

已被棄用。改爲使用defaultPrevented。 誤差源極線:

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

NS_ERROR_NOT_AVAILABLE:組件返回失敗代碼:0x80040111 (NS_ERROR_NOT_AVAILABLE)[nsIDOMWindow.print]誤差源極線:


print(); 

代碼:

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

我想呈現「GoBack的」之前打印的收據,以及「printRow」的ID,但無法正常工作

+0

另外,你最好使用window.print(); - 此外,你現在的代碼打印兩次屏幕 – MackieeE

+0

你在這裏問兩個不同的問題。除非您打算更改帖子的標題,否則您應該接受MackieeE的答案。 – MusikPolice

回答

4

您可以創建媒體類型的打印新的CSS

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

使用此代碼

print:

用於打印文檔(適用於在打印預覽模式下查看的文檔太)。

CSS Media Type

+0

我想在打印後顯示這些標識#goBack,#printRow,但不贊成使用getPreventDefault()。改爲使用defaultPrevented。 錯誤源代碼行: \t src.getPreventDefault && src.getPreventDefault())? returnTrue:returnFalse; –

9

同時升級您的從1.6.4Firefox & jQuery版本的版本到最新的版本。

這被提起的修補,結果在FF11 &在Firefox中的錯誤:

Bug #707677: getPreventDefault(); deprecated

由於畢竟,錯誤消息指的是完全無關的代碼行源代碼。

+0

「將您的Firefox和jQuery版本從1.6.4升級到更新版本」其非常全面的幫助 - = - = - = - = - = - = - = - 此外媒體Css幫助了我@media print { #goBack,#printRow { display:none; } } –

+0

但它是'#goBack,#printRow {display:none; }'爲你修好了嗎? – MackieeE

+18

我從jQuery 1.10.2中獲得這個,目前是1.x系列的最新版本。 –

4

我也在最新的FF和jQuery中得到這個警告。不用擔心,它會在導致任何問題之前在上游得到固定。

至於你的代碼,試試這個:

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

.hide()是異步的,這意味着瀏覽器有機會來執行它之前的下一行代碼可以被執行。所以你可能在元素被隱藏之前打印。通過在.hide()的回調中粘貼打印內容,確保在打印時隱藏它。

如前所述另一個海報,不過,CSS媒體類型可能是一個更好的方式來做到這一點:

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

它通過更換最新版本的JS,訪問jQuery的網站,並與最新的jQuery如果更換解決required .map js too

相關問題