views:

31

answers:

2

Hi all,

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 just wont to zoomin and zoomout the hole page

A: 

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.

Stephen
this is not what i wont. I need to simulate CTRL + by clicking on a link
Fincha
Oh! Sorry, I misunderstood the question!
Stephen
+1  A: 

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.

http://stackoverflow.com/questions/2578354/access-browsers-page-zoom-controls-with-javascript

Matt Ball
thank you for your response, you right, there is no way to face such a hotkey
Fincha