PluginProbe ʕ •ᴥ•ʔ
Email Encoder – Protect Email Addresses and Phone Numbers / 2.0.5
Email Encoder – Protect Email Addresses and Phone Numbers v2.0.5
2.5.1 2.5.0 2.4.8 trunk 0.10 0.11 0.12 0.20 0.21 0.22 0.30 0.31 0.32 0.40 0.41 0.42 0.50 0.60 0.70 0.71 0.80 1.0.0 1.0.1 1.0.2 1.1.0 1.2.0 1.2.1 1.3.0 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.5 1.5.2 1.51 1.53 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3.0 2.3.1 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7
email-encoder-bundle / core / includes / assets / js / custom.js
email-encoder-bundle / core / includes / assets / js Last commit date
custom-admin.js 6 years ago custom.js 6 years ago encoder-form.js 6 years ago
custom.js
99 lines
1 /* Email Encoder */
2 /*global jQuery, window*/
3 jQuery(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('eeb-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('.eeb-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 });
99