【问题标题】:Use of getPreventDefault() is deprecated. Use defaultPrevented instead不推荐使用 getPreventDefault()。改用 defaultPrevented
【发布时间】:2013-10-11 02:20: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 之前打印我的收据,但不工作

【问题讨论】:

  • 另外,你最好使用 window.print(); - 此外,您当前的代码打印屏幕两次
  • 您在这里提出了两个不同的问题。除非您打算更改帖子的标题,否则您应该在下面接受 MackieeE 的回答。

标签: javascript jquery firefox printing


【解决方案1】:

通过替换最新版本的js解决了,访问jquery站点并根据需要替换为最新的jquery .map js

【讨论】:

    【解决方案2】:

    我在最新的 FF 和 jQuery 中也收到了这个警告。不用担心,它会在引起任何问题之前在上游得到修复。

    至于你的代码,试试这个:

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

    .hide() 是异步的,这意味着下一行代码可能会在浏览器有机会执行之前执行。因此,您可能会在隐藏元素之前进行打印。通过将 print 粘贴在 .hide() 的回调中,您可以确定它在打印时是隐藏的。

    不过,正如另一位发帖者所提到的,CSS 媒体类型可能是更好的方法:

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

    【讨论】:

      【解决方案3】:

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

      这是在 FF11 中作为 Firefox 中的错误提交的,因此已修补:

      Bug #707677: getPreventDefault(); deprecated

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

      【讨论】:

      • “将您的 Firefox 和 jQuery 版本从 1.6.4 升级到更新的版本”它非常有帮助 -=-=-=-=-=-=-=-还有这些媒体Css 帮助我 @media print { #goBack, #printRow { display: none; } }
      • 但是是#goBack, #printRow { display:none; } 为您解决了这个问题?
      • 我从 jQuery 1.10.2 得到这个,目前是 1.x 系列的最新版本。
      • 仍在 Firefox 31.0 和 jQuery v1.9.1 中出现。
      • 在 Firefox 33.1 和 jQuery v.1.9.1 中出现
      【解决方案4】:

      您可以使用 media type print

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

      使用了这个代码

      打印:

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

      CSS Media Type

      【讨论】:

      • 我想在打印 #goBack,#printRow 后显示这些 id,但不推荐使用 getPreventDefault() 。请改用 defaultPrevented。错误源行: src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse;
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      • 2012-11-14
      相关资源
      最近更新 更多