【问题标题】:Print only when the condition is met not working ( ie 11)仅在满足条件不工作时打印(即11)
【发布时间】:2014-02-06 00:17:57
【问题描述】:

如果用户尝试打印(使用 ctrl+p)而不选中页面上的至少一个复选框,则会提示错误消息。在 IE 11 上,我确实看到了错误消息,但同时也出现了打印窗口(弹出窗口)。如何防止打印窗口?

$(window).bind('keydown', function (event) {

  if (event.ctrlKey || event.metaKey) {
    switch (String.fromCharCode(event.which).toLowerCase()) {
      case 'p':
        event.preventDefault();
        //alert('ctrl+p');
        printFunc();
        break;

      }
    }
});

也试过了:

window.onbeforeprint = function () {
    //alert('ctrl-p');
    printFunc();
    event.preventDefault();
    return false;
};

功能:

function printFunc() {
    var selectedListinsCount = selected_Listings.join('').split('').length;
    if (selectedListinsCount < 1) {
          if ($('#errmesg').length == 0) {
            $('.messageCenter').append('<span id="errmesg" class ="errmesg"> <span class="messageIcon"></span><span>Please select at least one listing</span></span>');
          }
        $('.messageCenter').show();
        return false;
    }
    else {
        $('.errmesg').remove();
        $('.messageCenter').hide();
    }

}

【问题讨论】:

标签: javascript jquery browser internet-explorer-11


【解决方案1】:

您应该使用return; 而不是return false;

【讨论】:

    【解决方案2】:

    我同意抑制浏览器的操作系统级功能可能不是最好的方法,并且随着时间的推移变得越来越不可能 - 基本上如果你确实让这个工作,它会有点缺乏可持续性。

    考虑在呈现您希望用户打印的数据之前更改您的流程以合并验证。

    【讨论】:

      猜你喜欢
      • 2017-02-09
      • 1970-01-01
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多