MaG: Mailto + Title

Hi zusammen,

ich möchte bei nen Klick auf einen Link den Standardmailclient öffnen lassen und dort als Subject den Titelnamen der aktuellen Seite reinschreiben.

Ich möchte da keinen fixen Namen reinschreiben.

Ich denke, dass es da ne Variable in der Art title oder so gibt, die ich mit an das Mailprogramm übergeben kann

Im Endeffekt sollte folgendes drinstehen

a href="mailto:blabla@bla.de%20?Subject=Betrifft die Site" + title

kann mir da jemand helfen, wie ich den Titelnamen der Site mitübergeben kann?

Merci

Mario

  1. Hallo Mario,

    ich möchte bei nen Klick auf einen Link den Standardmailclient öffnen lassen und dort als Subject den Titelnamen der aktuellen Seite reinschreiben.

    Nein, das geht mit reinem HTML nicht.

    Ich denke, dass es da ne Variable in der Art title oder so gibt, die ich mit an das Mailprogramm übergeben kann

    Dann musst du auf serverseitige Unterstützung bauen. Wenn du deine Seiten z.B. mit PHP generierst, lässt sich eine solche Ersetzung im Dokument wohl realisieren. Aber HTML allein kennt keine Variablen.

    Wenn du kleine Unwägbarkeiten in Kauf nimmst, wäre auch Javascript eine Möglichkeit. Mit Javascript kannst du den Titel des Dokuments auslesen und den mailto-Link dynamisch ins Dokument schreiben. Allerdings sollte dann noch ein <noscript>-Block folgen, in dem du den Link nochmal wiederholst, hier als Notlösung für JS-freie Browser eben mit einem festen String als Betreff.

    So long,

    Martin

    --
    Das einzige Problem beim Nichtstun: Man weiß nie, wann man damit fertig ist.
    1. Hi Mario

      Wie schon von Martin erklärt, geht das mit HTML selbst nicht.
      Den Titel der HTML Seite kann man mit Javascript auslesen. Mehr dazu findest du hier:
      http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#title
      Natuerlich solltest du aber fuer Benutzer die keine Javascript Unterstuetzung haben (wollen) eine Alternative anbieten.

      Gruss
      Jonathan

      1. Hi,

        vielen Dank euch beiden - jetzt hab ich nur ein Problem - wie kann ich das verbinden?
        Also wie sollt der Link-Part heißen?

        <script type="text/javascript">
        var == document.getElementsByTagName("title")[0].text;
        </script>

        <a href="mailto:bla@blabla.de%20?Subject=Hallo" + var>Bla</a>

        ?

        kann mir da noch jemand auf die Sprünge helfen?

        1. Okay - war schon mal falsch - aber jetzt funktioniert zumindest die Variablen-Zuweisung

          <script type="text/javascript">
          var ti
          ti=( document.getElementsByTagName("title")[0].text);
              <a href="mailto:bla@blabla.de%20?Subject=" & ti>
              Bla:</a>
          </script>

          wie mach ich das jetzt richtig?

          1. Kann es sein, dass du ein leichtes (oder schweres) Durcheinander von verschiedenen Sprachen hast? ;)

            So:

            <script type="text/javascript">
            var title = document.getElementsByTagName("title")[0].text;
            document.write("<a href="mailto:bla@blabla.de?subject=Titel: "+title+"">Link</a>");
            </script>

            Gruss
            Jonathan

            1. Vielen Dank Jonathan - tja, da hattest du Recht.
              Aber ich lerne dazu :o))

        2. Hi Mario,

          das klappt wohl so noch nicht. Du hast jetzt offensichtlich Bausteine gesammelt, aber dir fehlt der Überblick, wie man sie zusammensetzt.

          var == document.getElementsByTagName("title")[0].text;

          Da sind zwei Fehler drin, und das Ganze ist außerdem seeehr umständlich gemacht.
          Fehler 1: "var" ist ein reserviertes Schlüsselwort. So darf keine Variable heißen.
          Fehler 2: "==" ist ein Vergleichsoperator, keine Zuweisung. Für eine Zuweisung ist ein *einzelnes* Gleichheitsszeichen "=" zuständig.
          Und umständlich? Naja, man kann auch von Stuttgart nach München über Mailand fahren. *g* Um nur an den Dokumententitel zu kommen, muss man nicht gleich große Geschütze wie getElementsByXXX auspacken, eine einfache Abfrage von document.title genügt.

          <a href="mailto:bla@blabla.de%20?Subject=Hallo" + var>Bla</a>

          Nein. Wenn du den Link variabel haben möchtest, musst du ihn *komplett* mit JS ausgeben. Um HTML-Code oder Text direkt an der aktuellen Position ins Dokument zu setzen, gibt es die Methode document.write(). Davon abgesehen: Was hat das Leerzeichen zwischen der Mailadresse und dem ersten Parameter zu suchen? Weg damit!

          Fassen wir also zusammen:

          <script type="text/javascript>
          document.write('<a href="mailto:user@example.org?subject=' + document.title + '">Linktext</a>');
          </script>

          Damit die Besucher ohne JS wenigstens auch eine Chance haben, setzen wir einen <noscript> Block hinterher:

          <noscript>
          <a href="mailto:user@example.org?subject=Website-Kommentar">Linktext</a>
          </noscript>

          kann mir da noch jemand auf die Sprünge helfen?

          War doch gar nicht so schwer, oder?
          Übrigens solltest du nicht vergessen, dass beileibe nicht alle Mailclients den Parameter "subject=" auch übernehmen. Es kann durchaus sein, dass das ignoriert wird. Dann wärst du so weit wie zuvor. ;-)
          So long,

          Martin

          --
          Lieber blau machen, als sich schwarz ärgern.
          1. Hi Martin,

            vielen Dank für die ausführliche Anleitung und dem Sample.
            Schwer war´s nicht - das stimmt.
            Aber wenn man den Syntax nicht weiß, dann liegt man ziemlich auf der Nase :o)
            Bzgl. Subject - das Risiko geh ich ein - zumindest ist dann 80% gedeckt ;o))

            Danke

            Mario