Время для прочтения: 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’));
});
}

[/pastacode]
Постовой: анализ сайтов

Ссылки

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