【发布时间】: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();
}
}
【问题讨论】:
-
顺便说一句,除非您使用旧版本的 jQuery,否则请使用
on而不是bind。 -
也许是intercept the event 而不是按键?
-
@Owlvark 尝试了 window.onbeforeprint 但问题仍然存在。
-
我认为这不可能:msdn.microsoft.com/en-us/library/ie/ms536906%28v=vs.85%29.aspx 说“可取消:否”
标签: javascript jquery browser internet-explorer-11