Control+C 上触发事件,但仍允许复制
当用户在网页上按 control+c 时,我尝试运行一些代码,但我仍然希望该键操作复制用户选择的任何内容。使用我当前的代码,只有我编写的事件实际发生,并且默认操作被忽略。
这可能吗?这是我正在使用的代码:
控制键功能的代码
$.ctrl = function(key, callback, args) {
var isCtrl = false;
$(document).keydown(function(e) {
if(!args) args=[]; // IE barks when args is null
if(e.ctrlKey) isCtrl = true;
if(e.keyCode == key.charCodeAt(0) && isCtrl) {
callback.apply(this, args);
return false;
}
}).keyup(function(e) {
if(e.ctrlKey) isCtrl = false;
});
};
Control+C 的代码:
$('input').click(function(){
$(this).addClass('selected');
$(this).focus();
$(this).select();
});
$('input').blur(function(){
$('input.selected').removeClass('selected');
});
$.ctrl('C', function() {
if( $('input.selected').length != 0 )
{
alert("Saved");
}
});
I'm trying to run some code when the user presses control+c on a webpage, but I still want that key action to copy whatever the user has selected. With my current code, only the events I write actually happen and the default action is ignored.
Is this possible? Here's the code I'm using:
Code for control key functionality
$.ctrl = function(key, callback, args) {
var isCtrl = false;
$(document).keydown(function(e) {
if(!args) args=[]; // IE barks when args is null
if(e.ctrlKey) isCtrl = true;
if(e.keyCode == key.charCodeAt(0) && isCtrl) {
callback.apply(this, args);
return false;
}
}).keyup(function(e) {
if(e.ctrlKey) isCtrl = false;
});
};
Code for Control+C:
$('input').click(function(){
$(this).addClass('selected');
$(this).focus();
$(this).select();
});
$('input').blur(function(){
$('input.selected').removeClass('selected');
});
$.ctrl('C', function() {
if( $('input.selected').length != 0 )
{
alert("Saved");
}
});
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
删除行
return false;
Remove the line
return false;