geloescht_JesterDay Geschrieben 6. Dezember 2006 Teilen Geschrieben 6. Dezember 2006 Hallo, ich hab folgendes Problem: Auf einer Webseite ist ein Mailto:-Link. Beim Klicken dieses Links reagiert ja nur der Browser, ich bekomme (auf dem Server oder sonst wo) ja nichts davon mit (außer wenn die Mail ankommt). Ich will auf diesen Klick (also die Kontaktaufnahme) aber reagieren und dachte mir, das könnte ich ja über Javascript machen. Dazu hab ich jetzt zentral eine Javascript-Datei eingebunden, in der eine Funktion steht. Diese Funktion ruf ich beim onclick des Links auf. Das funktioniert ja auch noch, aber: Diese Funktion macht ein paar Ausgaben (document.writeln) und nach dem Klick auf den Link, öffnet der Browser ein neues Dokument, was eben nur diese Ausgaben der Funktion beinhaltet. Eigentlich sollte das ja nur in das vorhandene Dokument geschrieben werden. Grob gesagt sieht es so aus: # Javascript include-Datei: function funktionsName() { document.writeln('irgendwas'); ... return false; } # HTML: ... <a href="mailto:..." onclick="funktionsName();">Linktext</a> ... Ach ja, in der Javascript Ausgabe wird eine weitere Javascript-Code ausgegeben und eine weitere Javascriptdatei eingebunden, also ein <script ... src="..."></script> ausgegeben. Das geht auch soweit und die Datei lädt er auch. Auch den "include" auskommentieren bringt nichts. Hat einer ne Idee? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 7. Dezember 2006 Teilen Geschrieben 7. Dezember 2006 Hmm ich has mir ein paar mal durchgelesen und bin mir nicht 100 sicher, aber eventuell könnte das die LÖsung sein: <html> <head> <title>Untitled</title> <script> function funktionsName(emailAdresse) { alert("hey, ich hab was gemacht"); self.location.href = 'mailto:' + emailAdresse; return false; } </script> </head> <body> <a href="#" onclick="funktionsName('test@test.de');">Linktext</a> </body> </html> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 7. Dezember 2006 Autor Teilen Geschrieben 7. Dezember 2006 <script> function funktionsName(emailAdresse) { alert("hey, ich hab was gemacht"); self.location.href = 'mailto:' + emailAdresse; return false; } </script> Damit würde er doch auch das Dokument umleiten, oder nicht? Hab das noch nicht probiert, aber ... naja, werd ich nachher mal tun. Denke aber das löst mein Problem nicht wirklich, ich will ja nicht die location des Dokuments ändern. Ein Klick auf einen mailto:-Link macht ja im Browser was anderes... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 7. Dezember 2006 Teilen Geschrieben 7. Dezember 2006 Nö, Du kannst nun auf Deiner Seite bleiben, bevor das Standard-Email Fenster aufpoppt weiteren Code ausführen und dann öffnet sich das Standard E-Mail Fenster. Die Location bleibt die gleiche. getestet IE 6 und FF Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 7. Dezember 2006 Autor Teilen Geschrieben 7. Dezember 2006 getestet IE 6 und FF Also bei mir macht es keinen Unterschied. Ein Alert funktioniert zwar, aber ich mache eben ein document.write. <html> <head> <title>Untitled</title> <script> function funktionsName() { document.write('bla'); return false; } </script> </head> <body> <a href="mailto:..." onclick="funktionsName();">Linktext</a> </body> </html> [/php] Geht z.B. nicht (auch nicht mit der location.href Methode) Werd es wohl über prototype machen (also DOM) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
forTeesSake Geschrieben 7. Dezember 2006 Teilen Geschrieben 7. Dezember 2006 Ich hab gleube ich einfach nicht genau verstanden was Du genau vorhast. z.b. geht ein <html> <head> <title>Untitled</title> <script> function funktionsName(emailAdresse) { document.write('hallo'); self.location.href = 'mailto:' + emailAdresse; return false; } </script> </head> <body> <a href="#" onclick="funktionsName('test@test.de');">Linktext</a> </body> </html> eigentlich schon, aber dann nur wenn nichts ausser dem <a></a> im dokument steht. wenn du den text an der <a></a> stelle replacen willst, und vorher und nachher im dokument noch was kommt, geht das natürlich so nicht. vielleicht sagst noch kurz was genau du vorhast, vielleicht hab ich ja noch ne andere lösung. ansonsten klar über dom viele grüße Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 7. Dezember 2006 Autor Teilen Geschrieben 7. Dezember 2006 vielleicht sagst noch kurz was genau du vorhast, vielleicht hab ich ja noch ne andere lösung. Es soll einfach beim Klick auf den MailTo-Link weiteres Javascript ausgeführt werden. Da das alles über ein CMS geht, kann ich den Code nicht einfach in die Seite reinschreiben. außerdem soll es nur beim Klick auf den Mailto-Link geschehen. Eingebunden werden soll ein Google Converstion Tracking Script. Bei uns wurde eine fremde Firma beauftragt, die das macht und unsere AsWords optimieren will/soll. Und die wollen das drinhaben um zu sehen, wer über die AdWords zu uns kam und dann Kontakt aufgenommen hat auch. Ich darf das jetzt nur einbauen, irgendwie. Aber Prototype und DOM geht auch nur halb, das externe Javascript wird nur halb eingebunden. Ich schau jetzt mal direkt bei Google, ob die mehr/bessere Infos haben als ich per Mail bekommen hab. Ansonsten hab ich noch die Idee Ajax von Hand (also ohne prototype) zu probieren (weil genau der <script>-Teil bei prototype fehlt) oder deine Version von oben nehmen mit einer "blinden" Seite, die den Google-code ausführt und dann die location ändert (mailto: aufruft). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 8. Dezember 2006 Autor Teilen Geschrieben 8. Dezember 2006 Hab es jetzt ganz anders gemacht: Beim onclick wird auf eine weitere Seite umgelenkt und die Seite beinhaltet den Google-Javascript-Code direkt (is komisch bei einem MailTo-Link, aber naja). Über eine Ajax-Lösung ging es soweit auch, nur hat es da nicht gleich 100% geklappt und weil es so zu kompliziert wäre (waren nur 14 Zeilen code, PHP und Javascript zusammen), sollt ich das besser so machen. So geht es wenigstens und is einfach. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.