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'));
    });
}

Ссылки

Источник: https://www.kobzarev.com/programming/jquery-snippets-show-the-link-address-when-you-print/

Михаил Кобзарёв

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

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

%d такие блоггеры, как: