Как можно определить с помощью Javascript, работает ли таблица стилей печати?

StackOverflow https://stackoverflow.com/questions/344973

  •  19-08-2019
  •  | 
  •  

Вопрос

Я хотел бы иметь альтернативное поведение во время печати таблицы стилей на веб-странице. Что-то вроде:

  

Если эта страница печатается, не   потрудитесь вызвать SWFObject, чтобы вызвать   .swf в существование. Просто оставь   HTML, который заменит Flash.

Я пробовал такие вещи, как установка известного элемента в известный стиль, который существует для экрана, но не для таблицы стилей печати. Но получить & Quot; style & Quot; через Javascript не получается вычисляемый стиль.

Резюме. Можно ли определить, какая таблица стилей действует в кросс-браузерном режиме?

Это было полезно?

Решение

Похоже, вы запутались в том, что таблицы стилей печати используются при просмотре страницы, удобной для печати, но это не так. Таблица стилей печати не применяется, пока пользователь фактически не отправит страницу на принтер. На данный момент любой JavaScript, который будет запущен, уже завершен.

Что вы хотите сделать, так это поместить свой объект SWFObject в контейнер div и задать для контейнера стиль display:none; для печатных носителей.

Другие советы

Вы можете использовать JavaScript для доступа к таблицам стилей в документе, а затем проверить, активна ли таблица стилей «Печать». Как только вы определили, какой CSS активен, вы можете управлять своим контентом.

Функция getActiveStyleSheet выглядит примерно так:

function getActiveStyleSheet() 
{
    var i, a;

    for (i = 0; (a = document.getElementsByTagName("link")[i]); i++) 
    {
        if (a.getAttribute("rel").indexOf("style") != -1
         && a.getAttribute("title")
         && !a.disabled) 
            return a.getAttribute("title");
    }

    return null;
}

Вы можете найти код здесь: http://www.alistapart.com/articles/alternate / .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top