Время для прочтения: 0 мин. 55 сек.

jQuery сниппеты: показать адрес ссылки при выводе на печать

Я нашел замечательный трюк в статье Реми Шарпа, позволяющий вставлять в тексте после гиперссылки адрес самой ссылки при выводе страницы на печать.

К сожалению, данная фишка работает только в браузерах, поддерживающих CSS2 псевдоселектор :after: Firefox, Safari, Opera, Chrome (с ограничениями), IE8. Пользователи же IE6, IE7 не увидят должного эффекта, поэтому предлагаю для них использовать jQuery-сниппет.

$(function() {
    // Знает ли браузер о onbeforeprint (IE6, IE7 иIE8)
    if (window.onbeforeprint !== undefined) {
        // Вешаем обработчик перед печатью (добавление ссылок)
        window.onbeforeprint = ShowLinks;
        // Удаляем обработчик после печати
        window.onafterprint = HideLinks;
    }
    else {
        // Если браузер не IE6, используем псевдоселектор :after
        $('head').append('<style type="text/css" media="print">.print_link:after { content: " (" attr(href) ")"; }</style>');
    }
});
function ShowLinks() {
    $('.print_link').each(function() {
        // Запоминаем оригинальный тест ссылок
        $(this).data('linkText', $(this).text());
        // Добавляем к гиперссылке ее ссылку
        $(this).append(' (' + $(this).attr('href') + ')');
    });
}
function HideLinks() {
    $('.print_link').each(function() {
        // Восстанавливаем оригинальную гиперссылку
        $(this).text($(this).data('linkText'));
    });
}

Ссылки

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.