不推荐使用getPreventDefault()。请改用defaultPrevented

时间:2013-10-04 07:02:24

标签: javascript jquery firefox printing

我想在firefox

的加载页面上打印收据页面

Firefox显示以下错误..

不推荐使用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之前打印我的收据但不能正常工作

4 个答案:

答案 0 :(得分:9)

升级您的Firefox版本& 1.6.4版本从{{1}}到更新版本。

这是作为FF11中的Firefox中的错误提交的。修补结果:

jQuery

毕竟,错误消息是指与您的代码完全无关的源代码行。

答案 1 :(得分:4)

您可以使用媒体类型打印

创建新的CSS
<style media="print">
#goBack,#printRow {
   display:none;
}
</style>

使用此代码

打印:

适用于打印文档(也适用于在打印预览模式下查看的文档)。

CSS Media Type

答案 2 :(得分: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;
  }
}

答案 3 :(得分:0)

通过替换最新版本的js解析,访问jquery站点并替换为最新的jquery(如果需要.map js)