Как можно определить с помощью Javascript, работает ли таблица стилей печати? - PullRequest
1 голос
/ 05 декабря 2008

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

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

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

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

Ответы [ 2 ]

6 голосов
/ 05 декабря 2008

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

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

1 голос
/ 05 декабря 2008

Вы можете использовать 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/.

...