Hmm... Holzbrett vor dem Kopf ???
Andreas Mueck
- javascript
Hallo liebes Forum,
möglicherweise habe ich schon einen ganzen Wald vor meinem Kopf, denn ich kann folgendes Problem nicht mehr lösen:
Folgender Eintrag steht in einer HTML-Datei:
[...
<script language="javascript" src="mailme.js" type="text/javascript">
</script>
<body>
<A HREF="javascript:mails[0].sendeMail()">Message senden</A>
</body>
...]
Die Externe MAILME.JS sieht wie folgt aus:
var mails = new Array();
mails[0] = new mailObjekt('andreas.mueck@mfh-iserlohn.de','Die Seite ist ja nicht zum aushalten *fg*',' Hier kommt mein Kommentar :');
mails[1] = new mailObjekt('andreas.mueck@mfh-iserlohn.de','Ich finde die Seite gut !','Hier kommt mein Lob :');
function mailObjekt(to, su, bo) {
this.to = to // AN:
this.su = su // BETREFF:
this.bo = bo // NACHRICHT:
this.sendeMail = sendeMail;
}
function sendeMail() {
var urlString = this.to;
if (this.su) {
urlString = formatiereMailurl(urlString);
urlString = urlString + "subject=" +(this.su);
}
if (this.bo) {
urlString = formatiereMailurl(urlString);
urlString = urlString + "body=" +(this.bo);
}
// alert(urlString);
location='mailto:' +urlString;
}
function formatiereMailurl(formatStr) {
var formatStr;
if (formatStr.indexOf("?") == -1)
formatStr = formatStr + "?"
else
formatStr = formatStr + "&";
return formatStr;
}
Nun das Problem :
Wenn der Aufruf im IE 4.0+ erfolgt, dann erscheint die Meldung :
Zeile : 42
Zeichen : 5
Fehler : 'undefined' ist kein Objekt
Der Aufruf im 'Bugscape' NN 4.x+ verläuft korrekt.
Any ideas ? *Das Brett fängt langsam an zu schmerzen*
Holzigen Dank
Andreas
Hallo liebes Forum,
möglicherweise habe ich schon einen ganzen Wald vor meinem Kopf, denn ich kann folgendes Problem nicht mehr lösen:
Folgender Eintrag steht in einer HTML-Datei:
[...
<script language="javascript" src="mailme.js" type="text/javascript">
</script><body>
<A HREF="javascript:mails[0].sendeMail()">Message senden</A>
</body>...]
Die Externe MAILME.JS sieht wie folgt aus:
var mails = new Array();
mails[0] = new mailObjekt('andreas.mueck@mfh-iserlohn.de','Die Seite ist ja nicht zum aushalten *fg*',' Hier kommt mein Kommentar :');
mails[1] = new mailObjekt('andreas.mueck@mfh-iserlohn.de','Ich finde die Seite gut !','Hier kommt mein Lob :');function mailObjekt(to, su, bo) {
»»
»» this.to = to // AN:
»» this.su = su // BETREFF:
»» this.bo = bo // NACHRICHT:
»»
»» this.sendeMail = sendeMail;
}
function sendeMail() {
»»
»» var urlString = this.to;
braucht man in der Methode das this ? Ich trau mich nicht sagen ob das geht oder falsch ist!
»» if (this.su) {
»» urlString = formatiereMailurl(urlString);
urlString = urlString + "subject=" +(this.su);
}
Du löscht jedesmal den urlString! Wolltest wahrscheinlich schreiben urlString += .... ;-)
»» if (this.bo) {
urlString = formatiereMailurl(urlString);
»» urlString = urlString + "body=" +(this.bo);
»» }
Wozu die Klammern am Schluss? haben die einen tieferen Sinn, den ich noch nicht kenne ?
»» // alert(urlString);
»» location='mailto:' +urlString;
}
was geschieht weiter mit location ? return location ?
function formatiereMailurl(formatStr) {
var formatStr;
if (formatStr.indexOf("?") == -1)
formatStr = formatStr + "?"
else
formatStr = formatStr + "&";
return formatStr;
}
Any ideas ? *Das Brett fängt langsam an zu schmerzen*
Wie gesagt, es sind Ideen, bin aber auch kein JS-Profi !
Du könntest das ganze natürlich auch ein bischen weniger objektorientiert lösen: Der Funktion die Zahl
für das mail-Objekt übergeben, und einfach ein normales Stringobjekt draus machen!
Geht meiner Meinung nach einfacher :-)
keep it simple ;-)
Bernhard
Hallo Bernhard,
erst einmal Danke dafür, dass Du Dir die Zeit genommen hast ein paar Ideen einzustreuen :-)
Ich versuche es mal mit weniger Aufwand...
*fluch%$§"%$§"$%"$$%*
Einen schönen Abend noch ;-)
Bis dahin
Andreas