PageSourceSearch

http://www.curciat-dongalon.fr/wp-content/plugins/wp-mailto-links/…/assets/js/custom.js?ver=230923-41431

js curciat-dongalon.fr collected 2026-10-02 22:56:34 UTC 2,221 bytes, 98 lines download raw bytes

1/* WP Mailto Links */
2/*global jQuery, window*/
3jQuery(function ($) {
4
5    'use strict';
6
7    // encoding method
8    function rot13(s) {
9        // source: http://jsfromhell.com/string/rot13
10        return s.replace(/[a-zA-Z]/g, function (c) {
11            return String.fromCharCode((c <= 'Z' ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);
12        });
13    }
14
15    // fetch email from data attribute
16    function fetchEmail(el) {
17        var email = el.getAttribute('data-enc-email');
18
19        if (!email) {
20            return null;
21        }
22
23        // replace [at] sign
24        email = email.replace(/\[at\]/g, '@');
25
26        // encode
27        email = rot13(email);
28
29        return email;
30    }
31
32    // replace email in title attribute
33    function parseTitle(el) {
34        var title = el.getAttribute('title');
35        var email = fetchEmail(el);
36
37        if (title && email) {
38            title = title.replace('{{email}}', email);
39            el.setAttribute('title', title);
40        }
41    }
42
43    // set input value attribute
44    function setInputValue(el) {
45        var email = fetchEmail(el);
46
47        if (email) {
48            el.setAttribute('value', email);
49        }
50    }
51
52    // open mailto link
53    function mailto(el) {
54        var email = fetchEmail(el);
55
56        if (email) {
57            window.location.href = 'mailto:' + email;
58        }
59    }
60    
61    // revert
62    function revert(el, rtl) {
63        var email = fetchEmail(el);
64
65        if (email) {
66           rtl.text(email);
67           rtl.removeClass('wpml-rtl');
68        }
69    }
70
71    // prepare for copying email
72    document.addEventListener('copy', function(e){
73        $('a[data-enc-email]').each(function () {
74            var rtl = $(this).find('.wpml-rtl');
75
76            if (rtl.text()) {
77                revert(this, rtl);
78            }
79        });
80        console.log('copy');
81    });
82
83    // set mailto click
84    $('body').on('click', 'a[data-enc-email]', function () {
85        mailto(this);
86    });
87
88    // parse title attirbute
89    $('a[data-enc-email]').each(function () {
90        parseTitle(this);
91    });
92
93    // parse input fields
94    $('input[data-enc-email]').each(function () {
95        setInputValue(this);
96    });
97
98});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.