如何使用 jQuery 触发组合键

发布于 2024-09-26 09:10:21 字数 427 浏览 6 评论 0原文

我编码了一些东西:

http://fincha.com/kunden/schmitt/

我放大与 .css("zoom") 但我需要按钮来模拟 CTRL +CTRL -

此代码对我不起作用:

e = jQuery.Event("keydown");        
e.which = 50;       
$("input").trigger(e);

请帮忙!

编辑

我实际上想放大和缩小整个网页,而不仅仅是输入字段。

I have coded some stuff:

http://fincha.com/kunden/schmitt/

I zoom in with .css("zoom") but I need the buttons to simulate CTRL + or CTRL -

This code isn't working for me:

e = jQuery.Event("keydown");        
e.which = 50;       
$("input").trigger(e);

Please help!

EDIT

I actually wanted to zoom-in and zoom-out the whole web page, not just a input field.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情深已缘浅 2024-10-03 09:10:21

jQuery 通过在 event 对象上设置一个或多个属性来标准化事件上的修饰键。因此,您想要设置 event.ctrlKeytrue,所以这应该适合您:

e = jQuery.Event("keydown");        
e.which = 50;
e.ctrlKey = true;
$("input").trigger(e);

但是,根据源代码的评论(下面链接):

您无法轻松更改事件对象中的值(可能出于安全原因)。

因此,如果您在构造 Event 对象后无法设置事件的属性,那么您可以使用 $.extend() 它来设置 ctrlKey 属性:

e = jQuery.Event("keydown");
fake = $.extend({}, e, {which: 50, ctrlKey: true});
$("input").trigger(fake);

另一件事:我不确定您是否尝试对 +- 使用密钥代码 50键。也许您是,并且您使用的是不同的键盘布局,但根据此演示50 是点击 2 的 JavaScript 关键代码 - 因此这也可能是您问题的一部分。


来源:jQuery API 页面上的评论


编辑:

除此之外,我认为您实际上无法使用 JavaScript 更改浏览器的缩放级别,即使您“发送”键盘命令来执行此操作。

使用 JavaScript 访问浏览器的页面缩放控件

jQuery normalizes modifier keys on events by setting one or more properties on the event object. So, you want to set event.ctrlKey to true, so this should work for you:

e = jQuery.Event("keydown");        
e.which = 50;
e.ctrlKey = true;
$("input").trigger(e);

However, as per a comment at source (linked below):

You cannot easily change values in the event object (probably for security reasons).

So, if you're unable to set the event's properties after constructing the Event object, then you can $.extend() it to set the ctrlKey property:

e = jQuery.Event("keydown");
fake = $.extend({}, e, {which: 50, ctrlKey: true});
$("input").trigger(fake);

One other thing: I'm not sure if you're trying to use key code 50 for the + or the - keys. Maybe you are, and you're using a different keyboard layout, but according to this demo, 50 is the JavaScript key code for hitting 2 - so that could also be part of your problem.


Source: comments on a jQuery API page.


Edit:

All this aside, I don't think you can actually change the browser's zoom level using JavaScript, even if you're "sending" the keyboard command to do so.

Access browser's page zoom controls with javascript

断爱 2024-10-03 09:10:21

来源:http://www. scottklarr.com/topic/126/how-to-create-ctrl-key-shortcuts-in-javascript/

var isCtrl = false;

$(document).keyup(function (e) {
    if(e.which == 17) isCtrl=false;
}).keydown(function (e) {
    if(e.which == 17) isCtrl=true;
    if(e.which == 83 && isCtrl == true) {
        //run code for CTRL+S -- ie, save!
        return false;
    }
});

这是针对 Ctrl+s 的,但您应该能够轻松修改它。

Source: http://www.scottklarr.com/topic/126/how-to-create-ctrl-key-shortcuts-in-javascript/

var isCtrl = false;

$(document).keyup(function (e) {
    if(e.which == 17) isCtrl=false;
}).keydown(function (e) {
    if(e.which == 17) isCtrl=true;
    if(e.which == 83 && isCtrl == true) {
        //run code for CTRL+S -- ie, save!
        return false;
    }
});

This is for Ctrl+s, but you should be able to modify it easily.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文