20

我想在 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

4 回答 4

9

将您的FirefoxjQuery版本都升级1.6.4到更新的版本。

这在 FF11 中作为 Firefox 中的错误提交,结果是:

错误 #707677:getPreventDefault(); 已弃用

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

于 2013-10-04T07:44:28.037 回答
4

您可以使用媒体类型打印创建新的 CSS

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

使用此代码

打印 :

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

CSS 媒体类型

于 2013-10-04T07:07:33.827 回答
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;
  }
}
于 2013-10-08T13:16:19.307 回答
0

它通过替换最新版本的 js 来解决,访问 jquery 站点并在需要时用最新的 jquery 替换 .map js

于 2015-07-02T19:03:27.747 回答