Milan Kryl

Kryl Blog - RSS

Stránka a její verze pro tisk

11. 07. 2004 - 00:11

Některé weby řeší tiskovou verzi speciální stránkou, některé zase moderním způsobem (Eric Meyer) - vytvořením tiskového stylu. Narazil jsem na názor, že ani tiskový styl není ideální.

The Man In Blue se domnívá, že tiskový styl může uživatele mást. Nechá si vytisknout stránku a když ji chce najít v tiskárně, tak ji nepozná. Uživatel může chtít vytisknout přímo to co je na obrazovce (a nemusí mít o nějakém focení stránky a následném tisku ani potuchy - jak by se to dalo také řešit)

Snažil jsem se nad tím trošku zamyslet a vymyslel si vlastní variantu verze pro tisk. Není to ani první zmiňovaná ani ta druhá. Je to spíš taková kombinace obou.

Speciální stránka s ořezanou grafikou a stylem nachytaná pro tisk není ideální kvůli vyhledávačům. Na serveru tak získáte dvě místa, kde naleznete daný obsah. V poslední době jsem dost často narazil na to, že lidi odkazují právě na tuto tiskovou verzi. Což vzhledem k SEO není ideální a duplikovaný obsah je jednou z věcí, která se nedoporučuje.

Na druhou stranu varianta číslo dvě - speciální stylopis, který skryje nepotřebné informace, reklamy, navigaci apod. může mást uživatele.

Vymyslel jsem kompromisní řešení. Nabídnu uživateli odkaz pro zapnutí stylu Verze pro tisk (pomocí javascriptu). Aby vše chodilo nejen v mozille (kde by se totéž dalo řešit alternativním stylem), ale také v IE, je použit javascript. Malému procentu lidí, kteří javascript z nějakého důvodu vypnou nebude fungovat verze pro tisk a budou si moci stránku vytisknout jen jak ji vidí. Nemyslím si, že je to až tak velký problém.

A následuje jednoduché řešení:

Javascriptová funkce zapínající verzi pro tisk

function disableCSS() {
	var i, a, ne;
	for (i=0; (a = document.getElementsByTagName("link")[i]); i++) {
   	if(a.getAttribute("rel").indexOf("style") != -1
	   	&& a.getAttribute("title")) {
				if (a.getAttribute("title") == 'print') 
					{ a.disabled = false; }
				else { a.disabled = true; }
		}
	}
}

V hlavičce bude umístěn stylopis extra pro tiskovou verzi. Musí mít title nastaven na print a při normálním zobrazení zakázán. Buď v události onload mu nastavíme pomocí javascriptu disabled=true a nebo do elementu přidáme atribut disabled (čímž ale porušíme validitu).

<link rel="stylesheet" type="text/css" href="test.css" title="standard" />
<link rel="stylesheet" type="text/css" href="print.css" title="print" disabled />

a ve stránce potom již jen umístíme link na tiskovou verzi

	<a href="#" onclick="disableCSS();">Verze pro tisk</a>

Celé řešení si můžete vyzkoušet v praxi.

 

Tip: Krátké zprávy a zajímavosti (rychlý přístup https://kryl.info/kratce)