blumentopf: MailtoLink mit dynamisch generiertem Mailbody. Lösung

Beitrag lesen

Hallo, und vielen Dank erst noch einmal für die Ratschläge.
Meine momentane und nach ersten Tests gemäß meinen Vorstellungen funktionierende Lösung habe ich unten angefügt.
Ich verändere onClick die Eigenschaft href des Mailto Links. Dabei greife ich auf Daten aus einer Tabelle zu, die auf der Hauptseite vom Nutzer generiert wurde. Klickt der Nutzer auf den E-Mail Link, werden seine Angaben automatisch in die E-Mail übernommen, so dass er sie nicht von Hand abschreiben muss.
Also etwas, was man auch mit einem Formular lösen könnte, allerdings funktioniert es ohne CGI Service. Und davon, Formulare direkt per E-Mail zu verschicken, wird ja eindeutig abgeraten. Und wenn es bei einem System nicht funktioniert, kann es immer noch von Hand erledigt werden. Soviel zur Idee dieser Bastelei. Mag sein das es Quatsch oder ein sinnloses Unterfangen ist, aber wenn es auch auf anderem als dem meinigen Rechner so funktionieren sollte, dann finde ich es eigentlich ganz praktisch.

..und ich weiß, die stupiden Aufzählungen, derer im ungekürzten Originaltext noch mehr sind, könnte man sich wohl durch eine Schleife ersparen. War mir fürs erste aber noch zu viel Denkarbeit. Jetzt funktioniert es zumindest mal, das Kürzen kann ich dann ja noch angehen.
Variablen die hier nicht definiert werden, beziehen sich auf die Haupt-HTML.

e1='adresse';
e2='domain';
e3='de';
e=e1+'@'+e2+'.'+e3;
betreff="?subject=Betreff";
inhalt="&body=";
a1='<a id="mailtolink" onClick="addToMailbody()" onmouseup="radieren();" href="mai' + 'lto:';
a2='">';
a3='</a>';
link=a1+e+betreff+inhalt+a2+e+a3;
document.write(link);
merke=document.getElementById('mailtolink').href;

function bestellung(){
var nr1= "Nr." + document.getElementById('nummer1').firstChild.data;
var bez1= "%20%20%20%20%20%20%20%20" + document.getElementById('bezeichnung1').firstChild.data;
var pr1= "%20%20%20%20%20%20%20%20" + document.getElementById('preis1').firstChild.data + "%20Euro";
var anz1= "%20%20%20%20%20%20%20%20" + document.getElementById('zahl1').firstChild.data + "%20Stueck";
var sum1= "%20%20%20%20%20%20%20%20" + document.getElementById('sum1').firstChild.data + "%20Euro";
art1=nr1 + bez1 + pr1 + anz1 + sum1;

var nr2= "Nr." + document.getElementById('nummer2').firstChild.data;
var bez2= "%20%20%20%20%20%20%20%20" + document.getElementById('bezeichnung2').firstChild.data;
var pr2= "%20%20%20%20%20%20%20%20" + document.getElementById('preis2').firstChild.data + "%20Euro";
var anz2= "%20%20%20%20%20%20%20%20" + document.getElementById('zahl2').firstChild.data + "%20Stueck";
var sum2= "%20%20%20%20%20%20%20%20" + document.getElementById('sum2').firstChild.data + "%20Euro";
art2="%0A" + nr2 + bez2 + pr2 + anz2 + sum2;

var nr3= "Nr." + document.getElementById('nummer3').firstChild.data;
var bez3= "%20%20%20%20%20%20%20%20" + document.getElementById('bezeichnung3').firstChild.data;
var pr3= "%20%20%20%20%20%20%20%20" + document.getElementById('preis3').firstChild.data + "%20Euro";
var anz3= "%20%20%20%20%20%20%20%20" + document.getElementById('zahl3').firstChild.data + "%20Stueck";
var sum3= "%20%20%20%20%20%20%20%20" + document.getElementById('sum3').firstChild.data + "%20Euro";
art3="%0A" + nr3 + bez3 + pr3 + anz3 + sum3;

einl1= "Einleitungstext%20Singular%0A%0A";
einl2= "Einleitungstext%20Plural%0A%0A";
    Kosten= "%0A%0A%0A%20%20%20Kosten%20%20%20" + document.getElementById('gesamt').firstChild.data + "%20Euro";
text=einl1+art1;
if (zeilenzaehler ==3){text=einl2+art1+art2;}
if (zeilenzaehler >=4){text=einl2+art1+art2+art3;}
}

function addToMailbody(){
bestellung();
document.getElementById('mailtolink').href = document.getElementById('mailtolink').href + text + Kosten + adr;
 }

function radieren(){
 document.getElementById('mailtolink').href = merke;
 }