Отключить jQuery-определенные стили при печати - PullRequest
1 голос
/ 17 февраля 2011

У меня есть страница с множеством функций и стилей, определенных с помощью jQuery для готовых документов и прокрутки окон, и даже я убедился, что она хорошо деградировала с отключенным JavaScript.Тем не менее, я просто собирал вместе «печатную» таблицу стилей, которая отбрасывает большую часть стилизаций, и когда я ее протестировал, я понял, что мои методы jQuery включаются при печати и добавлении некоторых фоновых изображений.Можно ли отключить JavaScript, JQuery или даже определенную функцию при печати?

Самой большой проблемой является этот фрагмент, который генерирует случайное фоновое изображение на основе числа, сгенерированного ранее ... он переопределяет вызов моей таблицы стилей печати для background-image: нет, даже при использовании тега Important:

$(document).ready(function() {
    $("body").css({backgroundImage: 'url(images/body_bg_'+background+'.jpg)'});
});

Спасибо!

Ответы [ 2 ]

3 голосов
/ 17 февраля 2011

Определите ваши стили в таблице стилей.Затем используйте JavaScript, чтобы изменить DOM, чтобы эти стили применялись к элементу, вместо того, чтобы изменять свойство стиля.

Это позволяет вам контролировать различные медиа и поддерживать разделение интересов (семантика,представление и логика).

@media screen {
   body.something {
       background-image: url(images/body_bg_something.jpg);
   }
}

$(document).ready(function() {
    $("body").addClass('something');
}

Тем не менее:

он отменяет вызов моей таблицы стилей печати для background-image: нет, даже при использовании! Important

Это действительно не должно быть в состоянии сделать это.

0 голосов
/ 17 февраля 2011

Вы можете открыть ту же страницу в виде всплывающего окна без каких-либо вызовов / ссылок jquery, а затем вызвать window.print при загрузке страницы.Как и параметр «Печать» в GoogleMap.

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