Как использовать функцию печати с CTRL + p? - PullRequest
1 голос
/ 24 августа 2011

На веб-сайте, над которым я сейчас работаю, есть значок печати, который открывает страницу для печати, и отпечатки выглядят нормально.Однако, если пользователь нажимает сочетание клавиш CTRL + p (не нажимая «значок печати»), версия для печати не используется.Таким образом, проблема заключается в том, как заставить пользователя распечатать версию для печати, когда он нажмет CTRL + p?

. Что может представлять собой препятствие, так это то, что страница для печати создается с использованием XSLT.Любые идеи?

Я просмотрел несколько статей, которые касаются использования CSS, но потом мне показалось, что мне нужно переопределить / создать новую страницу для печати / CSS-макет, и я не увидел, как я мог бы реализоватьэто с XSLT.Я по-прежнему включаю CSS-тег, на случай, если у некоторых из вас есть блестящие способы решить эту проблему с помощью CS.Если это невозможно, извините за публикацию с неправильными тегами ..

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

Используйте таблицу стилей с опцией @media print, чтобы скрыть элементы без печати. ​​

Я быстро пошел и думаю, что я удалил большинство элементов, вы сможете настроить этодальше, чтобы лучше удовлетворить ваши потребности.

@media print {

  #col1,#col2 { display:none; }

  #crumbs,#header_smallmenu,#header_search { display:none;}

  .solidblockmenu { display:none; }

  .addthis_toolbox addthis_default_style { display:none;}

  #hbfooter, .hbfooter { display:none; }

  body {background-image: none;}

}
0 голосов
/ 24 августа 2011

Разве это не работа для Javascript?

Если вы перехватываете событие onKeyDown, вы можете перехватить его при нажатии клавиш CTRL + P и запустить собственный javascript, чтобы открыть страницу, удобную для печати

function overrideKeyDown(winEvent)
{
    var keyCode; 

    if(!winEvent) 
    { 
              // IE code
        winEvent = window.event; 
        keyCode = winEvent.keyCode; 
    } 
    else 
    {
        keyCode = winEvent.which; 
    } 

    if (keyCode == 80 && winEvent.ctrlKey)
    {
        alert('Printer Friendly Page');
        return false;
    }
}

document.onkeydown = overrideKeyDown;

Это работает в IE и Chrome, но, к сожалению, Firefox по-прежнему вызывает диалоговое окно «Принтер», а также запускает Javascript. Однако я решил опубликовать код в любом случае, на случай, если он вам поможет.

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