Используйте Javascript для CTRL + и CTRL- в Firefox и Chrome - PullRequest
4 голосов
/ 15 июля 2011

Я хотел бы дать пользователям возможность увеличивать / уменьшать размер рендеринга контента внутри веб-приложения.

Функции CTRL + и CTRL - (или CTRL 1 CTRL 9 ) в Chrome и Firefox удобны - но есть ли способ реализовать эти функции из JavaScript?

Пояснение: Я хочу, чтобы пользователь мог достичь этого с помощью щелчка мышью, а не нажатия клавиш, поэтому что-то вроде этого:

function resize_rendering() {
    // code that executes ctrl+ or crtl-
}

Ответы [ 4 ]

3 голосов
/ 15 июля 2011

Уровень масштабирования браузера - это пользовательская настройка, которая используется для удобства доступа;он не предназначен для разработчика сайта, чтобы когда-либо знать или заботиться о том, какой уровень масштабирования, поэтому я ожидаю, что у вас будут проблемы с выполнением именно того, что вы хотите.Конечно, будет трудно сделать это правильно, так, чтобы она работала в кросс-браузерном режиме.

Обычный подход к этому - иметь гаджет определения размера, который изменяет базовый размер шрифта.

Если все размеры шрифтов на вашем сайте указаны в em единицах, то вы можете изменить размеры всего текста на сайте с помощью одного изменения CSS.

Таким образом, у вас будет набор кнопок насайт, который использует Javascript, чтобы установить font-size элемента <body> (например) 12, 14, 16 или 18 пикселей, в зависимости от элемента, по которому щелкнули.

Есть описание техникиздесь: http://labnol.blogspot.com/2006/12/allow-site-visitors-to-change-font.html

1 голос
/ 15 июля 2011

Вам не разрешено оформлять. Вы не можете изменить настройки браузера пользователя через Javascript.

Вы можете делать другие вещи, например, изменять весь CSS на своей странице, чтобы масштабировать все до имитировать a CTRL-, но это все.

В некоторых браузерах вы можете захватить CTRL +/- до того, как браузер это сделает, что позволит вам остановить эти события. Но вы не можете сделать противоположное - вы не можете заставить эти события происходить из вашего собственного сценария.

0 голосов
/ 15 июля 2011

Вы можете перехватить нажатие клавиши в общем обработчике события ключа (например, в объекте window), проверить, ищет ли он тот, который вы ищете, и если да, вызвать stopPropagation() для параметра события (и возвращает false), чтобы браузер не мог обрабатывать его самостоятельно.

Затем вам придется самостоятельно выполнить операцию определения размера, например, изменив таблицу стилей с помощью JavaScript.

window.addEventListener( 'keydown', function( e ) {
    if ( /* check e.keyCode etc. */ ) {
        // modify global style to increase/decrease font size
        e.stopPropagation();
        return false;
    } );
0 голосов
/ 15 июля 2011

Эта библиотека здесь от John Resig - это плагин jQuery, который должен выполнять эту работу.Там есть несколько образцов.Также довольно легко соединять комбинации клавиш.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...