root/vstup/js/skript.js @ 93:5b55827de220

Revision 93:5b55827de220, 2.0 KB (checked in by František Kučera <franta-hg@…>, 12 years ago)

#16 „obfuskované“ odkazy na e-maily, které znesnadní sběr spamovacím robotům
odkazy jsou pro uživatele klikatelné (vyžaduje JavaScript).

Line 
1/**
2 * XML Web generátor – program na generování webových stránek
3 * Copyright © 2012 František Kučera (frantovo.cz)
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18
19/**
20 * XML Web generátor – jmenný prostor
21 */
22var xwg = {
23        /**
24         * Zašifruje/dešifruje obsah elementu pomocí Rot13.
25         * @param id ID elementu, jehož text chceme změnit.
26         */
27        rot13: function(id) {
28                var e = document.getElementById(id);
29                e.textContent = e.textContent.rot13();
30        },
31
32        /**
33         * Vloží klikatelný odkaz.
34         * @param id ID span elementu obsahujícího data
35         */
36        odkazNaElektronickouPoštu: function(id) {
37                var spanČesky = document.getElementById(id);
38                var spanObsah = document.getElementById(id + "b");
39                var česky = spanČesky.innerHTML;
40                var adresa = česky.replace(" zavináč ", "@").replace(" tečka ",".");
41
42                var odkaz = document.createElement("a");
43                odkaz.href = "mailto:" + adresa;
44                if (spanObsah.innerHTML.length > 0) {
45                        odkaz.innerHTML = spanObsah.innerHTML;
46                } else {
47                        odkaz.innerHTML = adresa;
48                }
49
50                spanČesky.parentNode.insertBefore(odkaz, spanČesky);
51                spanČesky.parentNode.removeChild(spanČesky);
52                spanObsah.parentNode.removeChild(spanObsah);
53        },
54
55};
56
57/**
58 * Vrací hodnotu textového řetězce zašifrovanou/dešifrovanou algoritmem Rot13
59 */
60String.prototype.rot13 = function() {
61        return this.replace(/[a-zA-Z]/g, function(z) {
62                return String.fromCharCode((z <= "Z" ? 90 : 122) >= (z = z.charCodeAt(0) + 13) ? z : z - 26);
63        });
64};
65
Note: See TracBrowser for help on using the browser.