abilitato anche a con class

This commit is contained in:
Matteo Manzinello 2019-05-06 19:01:59 +02:00
parent e3483cec6e
commit b3838136c0
3 changed files with 40 additions and 26 deletions

45
dist/mailgo.js vendored
View File

@ -1,20 +1,14 @@
function mailgoInit() { function mailgoInit() {
const styles = ` const styles = `
.mailgo {
all: initial;
* {
all: unset;
}
}
.mailgo-title { .mailgo-title {
display: block; display: block;
margin-bottom: 5px; margin-bottom: 5px;
} }
.mailgo-details { .mailgo-details {
font-size: 12px;
margin-bottom: 10px; margin-bottom: 10px;
} }
.mailgo-details p { .mailgo-details p {
font-size: 12px;
margin-top: 3px; margin-top: 3px;
margin-bottom: 3px; margin-bottom: 3px;
} }
@ -97,28 +91,46 @@ function mailgoInit() {
// ottengo tutti i mailto contenuti nella pagina // ottengo tutti i mailto contenuti nella pagina
const mailgos = document.querySelectorAll( const mailgos = document.querySelectorAll(
'a[href^="mailto:"]:not(.no-mailgo)' 'a[href^="mailto:"]:not(.no-mailgo), a.mailgo'
); );
// attivo mailgo su tutti gli elementi // attivo mailgo su tutti gli elementi
mailgos.forEach(function(mailgo, index) { mailgos.forEach(function(mailgo, index) {
let mail = mailgo.href let mail = "",
mailtoHref = "",
cc = "",
bcc = "",
subject = "",
bodyMail = "";
// caso in cui applico mailgo ad un <a> con mailto:
if (mailgo.href && mailgo.href.includes("mailto:")) {
mail = mailgo.href
.split("?")[0] .split("?")[0]
.split("mailto:")[1] .split("mailto:")[1]
.trim(); .trim();
let url = new URL(mailgo.href); mailtoHref = mailgo.href;
url = new URL(mailtoHref);
let urlParams = new URLSearchParams(url.search); let urlParams = new URLSearchParams(url.search);
let cc = urlParams.get("cc"); cc = urlParams.get("cc");
let bcc = urlParams.get("bcc"); bcc = urlParams.get("bcc");
let subject = urlParams.get("subject"); subject = urlParams.get("subject");
let bodyMail = urlParams.get("body"); bodyMail = urlParams.get("body");
} else {
// caso in cui applico mailgo ad <a> con class="mailgo"
mail =
mailgo.getAttribute("data-address") +
"@" +
mailgo.getAttribute("data-domain");
mailtoHref = "mailto:" + mail;
url = new URL(mailtoHref);
}
if (!validateEmail(mail)) return; if (!validateEmail(mail)) return;
let modal = document.createElement("div"); let modal = document.createElement("div");
modal.classList.add("mailgo");
modal.classList.add("mailgo-modal"); modal.classList.add("mailgo-modal");
modal.setAttribute("data-index", index); modal.setAttribute("data-index", index);
@ -194,8 +206,7 @@ function mailgoInit() {
// Gmail // Gmail
let gmail = document.createElement("a"); let gmail = document.createElement("a");
gmail.href = gmail.href = "https://mail.google.com/mail?extsrc=mailto&url=" + mailtoHref;
"https://mail.google.com/mail?extsrc=mailto&url=" + mailgo.href;
gmail.classList.add("mailgo-open"); gmail.classList.add("mailgo-open");
gmail.classList.add("gmail"); gmail.classList.add("gmail");
let gmailContent = document.createTextNode("open in "); let gmailContent = document.createTextNode("open in ");

2
dist/mailgo.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -97,19 +97,21 @@ function mailgoInit() {
// attivo mailgo su tutti gli elementi // attivo mailgo su tutti gli elementi
mailgos.forEach(function(mailgo, index) { mailgos.forEach(function(mailgo, index) {
let mail = "", let mail = "",
mailtoHref = "",
cc = "", cc = "",
bcc = "", bcc = "",
subject = "", subject = "",
bodyMail = ""; bodyMail = "";
// caso in cui applico mailgo ad un <a> con mailto: // caso in cui applico mailgo ad un <a> con mailto:
if (mailgo.href.includes("mailto:")) { if (mailgo.href && mailgo.href.includes("mailto:")) {
mail = mailgo.href mail = mailgo.href
.split("?")[0] .split("?")[0]
.split("mailto:")[1] .split("mailto:")[1]
.trim(); .trim();
let url = new URL(mailgo.href); mailtoHref = mailgo.href;
url = new URL(mailtoHref);
let urlParams = new URLSearchParams(url.search); let urlParams = new URLSearchParams(url.search);
cc = urlParams.get("cc"); cc = urlParams.get("cc");
@ -122,6 +124,8 @@ function mailgoInit() {
mailgo.getAttribute("data-address") + mailgo.getAttribute("data-address") +
"@" + "@" +
mailgo.getAttribute("data-domain"); mailgo.getAttribute("data-domain");
mailtoHref = "mailto:" + mail;
url = new URL(mailtoHref);
} }
if (!validateEmail(mail)) return; if (!validateEmail(mail)) return;
@ -202,8 +206,7 @@ function mailgoInit() {
// Gmail // Gmail
let gmail = document.createElement("a"); let gmail = document.createElement("a");
gmail.href = gmail.href = "https://mail.google.com/mail?extsrc=mailto&url=" + mailtoHref;
"https://mail.google.com/mail?extsrc=mailto&url=" + mailgo.href;
gmail.classList.add("mailgo-open"); gmail.classList.add("mailgo-open");
gmail.classList.add("gmail"); gmail.classList.add("gmail");
let gmailContent = document.createTextNode("open in "); let gmailContent = document.createTextNode("open in ");