Line 2... |
Line 2... |
2 |
// Oprava parametrů obrázku v hlavičce, oprava odkazu na stránku údržby |
2 |
// Oprava parametrů obrázku v hlavičce, oprava odkazu na stránku údržby |
3 |
// Doplněna detekce jazyka dokumentu (ve značce body) |
3 |
// Doplněna detekce jazyka dokumentu (ve značce body) |
4 |
// Předěláno na jinou strukturu adresářů, doplněno poukování odkazů |
4 |
// Předěláno na jinou strukturu adresářů, doplněno poukování odkazů |
5 |
// Oprava regulárního výrazu tak, aby nekazil odkaz Nahoru v patičce |
5 |
// Oprava regulárního výrazu tak, aby nekazil odkaz Nahoru v patičce |
6 |
// Změna kódování na UTF-8 |
6 |
// Změna kódování na UTF-8 |
- |
|
7 |
// Doplněno automatické generování obsahu |
7 |
|
8 |
|
8 |
var RelPath=""; // Proměnná pro uložení relativní cesty k rootu webu |
9 |
var RelPath=""; // Proměnná pro uložení relativní cesty k rootu webu |
9 |
// Všechny cesty v tomto skriptu pak mají být cestami od |
10 |
// Všechny cesty v tomto skriptu pak mají být cestami od |
10 |
// rootu webu (například Web/PIC/MLAB.ico) |
11 |
// rootu webu (například Web/PIC/MLAB.ico) |
11 |
|
12 |
|
Line 177... |
Line 178... |
177 |
// Korekce cest v odkazech |
178 |
// Korekce cest v odkazech |
178 |
Content=PokeRelativePath(Content); |
179 |
Content=PokeRelativePath(Content); |
179 |
// Výstup sestaveného textu |
180 |
// Výstup sestaveného textu |
180 |
document.write(Content); |
181 |
document.write(Content); |
181 |
} |
182 |
} |
- |
|
183 |
|
- |
|
184 |
|
- |
|
185 |
//============================================= |
- |
|
186 |
// Automatické generování obsahu |
- |
|
187 |
// |
- |
|
188 |
// Ke každé značce s class="PutTocHere x" vygeneruje obsah |
- |
|
189 |
// s hloubkou x nadpisů (defaultně 2 úrovně) |
- |
|
190 |
|
- |
|
191 |
|
- |
|
192 |
function tocGetText(obj) |
- |
|
193 |
// Vrať řetězec s obsahem elementu |
- |
|
194 |
{ |
- |
|
195 |
var str="" |
- |
|
196 |
for (var i=0;i < obj.childNodes.length;i++) |
- |
|
197 |
{ |
- |
|
198 |
if (obj.childNodes[i].nodeType==1) // ELEMENT_NODE |
- |
|
199 |
str += tocGetText(obj.childNodes[i]) |
- |
|
200 |
else if (obj.childNodes[i].nodeType==3) // TEXT_NODE |
- |
|
201 |
str += obj.childNodes[i].data |
- |
|
202 |
} |
- |
|
203 |
return str |
- |
|
204 |
} |
- |
|
205 |
|
- |
|
206 |
var tocGlobalContext=0 // pro unikátní kotvy ve značce <a> |
- |
|
207 |
|
- |
|
208 |
function tocHeaders(el,obj,depth) |
- |
|
209 |
// Proleze hierarchickou strukturu a najde vsechny nadpisy |
- |
|
210 |
// do zadané úrovně včetně. |
- |
|
211 |
{ |
- |
|
212 |
var tagList = "H1;H2;H3;H4;H5;H6;H7;" |
- |
|
213 |
if (tagList.indexOf(obj.tagName+";")>=0) // je to nadpis |
- |
|
214 |
if (obj.tagName.charAt(1)<=depth) // úroveň nadpisu |
- |
|
215 |
{ |
- |
|
216 |
// Vytvoř položku seznamu |
- |
|
217 |
var eLI = document.createElement("li") // položka seznamu |
- |
|
218 |
var eA = document.createElement("a") // uvnitř link |
- |
|
219 |
var eLIText = document.createTextNode(tocGetText(obj)) // uvnitř text |
- |
|
220 |
eLI.className="Toc" + obj.tagName // úroveň nadpisu do class |
- |
|
221 |
eA.href="#_Toc_"+tocGlobalContext // cíl odkazu |
- |
|
222 |
eA.appendChild(eLIText) // vlož text do odkazu |
- |
|
223 |
eLI.appendChild(eA) // vlož odkaz do položky seznamu |
- |
|
224 |
el.appendChild(eLI) // vlož položku seznamu do seznamu |
- |
|
225 |
|
- |
|
226 |
// Přidej k nadpisu kotvu (znackou <a>) |
- |
|
227 |
var anchor=document.createElement("a") |
- |
|
228 |
anchor.id="_Toc_"+tocGlobalContext++ // unikátní jména kotev |
- |
|
229 |
obj.appendChild(anchor) // přidej kotvu k nadpisu |
- |
|
230 |
} |
- |
|
231 |
for (var i=0;i < obj.childNodes.length;i++) // rekurze |
- |
|
232 |
if (obj.childNodes[i].nodeType==1) |
- |
|
233 |
tocHeaders(el,obj.childNodes[i],depth) |
- |
|
234 |
} |
- |
|
235 |
|
- |
|
236 |
|
- |
|
237 |
function tocPutToc(objToc) |
- |
|
238 |
// Rekurzivně projdi strom dokumentu a na všechna místa kam patří |
- |
|
239 |
// vlož seznam. Místo je ozačeno značkou s id="PutTocHere". |
- |
|
240 |
// Volitelně může být uveden parametr Class="x", kde x udává hloubku |
- |
|
241 |
// zpracovávaných nadpisů. |
- |
|
242 |
{ |
- |
|
243 |
var cl=objToc.className.split(" ") // vezmi class a rozděl ho na slova |
- |
|
244 |
if (cl[0].toUpperCase()=="PutTocHere".toUpperCase()) |
- |
|
245 |
{ |
- |
|
246 |
var depth=2 // default hodnota hloubky |
- |
|
247 |
for (var i=1;i<cl.length;i++) |
- |
|
248 |
{ |
- |
|
249 |
if (cl[i]!="") // preskoč prázdné položky (IE6) |
- |
|
250 |
{ |
- |
|
251 |
depth=cl[i] // byla zadána i druhá hodnota |
- |
|
252 |
break |
- |
|
253 |
} |
- |
|
254 |
} |
- |
|
255 |
|
- |
|
256 |
var toc = document.createElement("ul") // Toc je nečíslovaný seznam |
- |
|
257 |
toc.className="Toc" // s Class="Toc" |
- |
|
258 |
|
- |
|
259 |
var objHx = document.getElementsByTagName("body")[0] // Odtud začínáme |
- |
|
260 |
tocHeaders(toc,objHx,depth) // projdi všechny nadpisy |
- |
|
261 |
objToc.appendChild(toc) // přidej Toc jako jeho dítě |
- |
|
262 |
} |
- |
|
263 |
// Rekurzivní procházení dětí |
- |
|
264 |
for (var i=0;i < objToc.childNodes.length;i++) |
- |
|
265 |
if (objToc.childNodes[i].nodeType==1) // ELEMENT_NODE |
- |
|
266 |
(tocPutToc(objToc.childNodes[i])) |
- |
|
267 |
} |
- |
|
268 |
|
- |
|
269 |
|
- |
|
270 |
function doLoad() |
- |
|
271 |
// Tato funkce se spustí při načtení celé stránky. |
- |
|
272 |
{ |
- |
|
273 |
// Najdi všechna místa pro seznam |
- |
|
274 |
var objToc = document.getElementsByTagName("body")[0] // Odtud začínáme |
- |
|
275 |
tocPutToc(objToc) |
- |
|
276 |
} |
- |
|
277 |
|
- |
|
278 |
|
- |
|
279 |
// Zaregistruj výkonný skript po načtení celé stránky |
- |
|
280 |
window.onload = doLoad |