Luna: Mehrere Scripts auf einer Seite

Hallo zusammen,

bin absoluter Newbie und habe folgendes Script integriert:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
http://www.w3.org/TR/html4/strict.dtd>
<html>
<head>
<title></title>
<script language="JavaScript" type="text/javascript">
<!--
function mail()
{
  var name = "meinname";
  var domain = "xyz.com";
  var sendmail = 'mailto:' + name + '@' + domain;
  window.location.href = sendmail;
}
// -->
</script>
</head>

<body>

<p>
<a href="javascript:mail();">e-Mail</a>
 </p>
</body>
</html>

Soweit alles ganz wunderbar. Wenn ich dieses Script aber mehrfach auf einer Seite setze (z. B. mit "meinname", "deinname" etc.), funktioniert es immer nur mit einer Adresse - bei allen Links erscheint dann der gleiche Name in der e-Mail-Client-Verknüpfung.

Was muss ich ändern??

THX

  1. Hallo Luna,

    bin absoluter Newbie und habe folgendes Script integriert:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    http://www.w3.org/TR/html4/strict.dtd>
    <html>
    <head>
    <title></title>
    <script language="JavaScript" type="text/javascript">
    <!--
    function mail()
    {
      var name = "meinname";
      var domain = "xyz.com";
      var sendmail = 'mailto:' + name + '@' + domain;
      window.location.href = sendmail;
    }
    // -->
    </script>
    </head>

    <body>

    <p>
    <a href="javascript:mail();">e-Mail</a>
    </p>
    </body>
    </html>

    Soweit alles ganz wunderbar. Wenn ich dieses Script aber mehrfach auf einer Seite setze (z. B. mit "meinname", "deinname" etc.), funktioniert es immer nur mit einer Adresse - bei allen Links erscheint dann der gleiche Name in der e-Mail-Client-Verknüpfung.
    Was muss ich ändern??

    Du hast bisher dieselbe Funktion mehrfach deklariert, du musst aber deine Funktion erweitern, damit sie dass kann und dann mehrfach aufrufen.

    Der Aufruf lautet bei dir: mail(); --> Hier gehört auch der Name hin, oder was du sonst noch so brauchst.

    z.B: Mail(deinname);

    Die zugehörige Funktion muss diesen Parameter dann auslesen:

    z.B.:

    function mail(var benutzername)
    {
      var name = benutzername;
      var domain = "xyz.com";
      var sendmail = 'mailto:' + name + '@' + domain;
      window.location.href = sendmail;
    }

    Das sind nur Beispiele, keine fertigen Codes, da du vermutlich auch die Emailadresse ändern können willst, etc.

    LIes dazu doch noch ein bisschen in Selfhtml unter den Stichwort "Funktionen". Dann wird es bestimmt noch klarer.

    ciao
    romy

    1. var name = benutzername;

      Warum herumkopieren?

      var domain = "xyz.com";

      example.com - aber warum ist dieser wert statisch?

      var sendmail = 'mailto:' + name + '@' + domain;

      warum heissen die dinger nicht local_part und domain_part?

      1. Hi there,

        warum heissen die dinger nicht local_part und domain_part?

        suit, suit, suit, warum nur bist Du so entsetzlich zwanghaft? ;)

        1. warum heissen die dinger nicht local_part und domain_part?

          suit, suit, suit, warum nur bist Du so entsetzlich zwanghaft? ;)

          Weil ich mir das Leben gerne leichter mache - warum soll man irgendwelche Phantasienamen erfinden, wenn es entsprechende Bezeichner gibt?

          Einen Zähler für die Anzahl der Äpfel in einem Korb und einen zweiten, für die Anzahl der Birnen im Korb daneben nenne ich doch auch eher. zaehler_aepfel und zaehler_birnen als wert1 und wert2 :)

          1. Hallo,

            warum soll man irgendwelche Phantasienamen erfinden, wenn es entsprechende Bezeichner gibt?

            Weil einem die apartigen Bezeichner nicht geläufig sind?

            Du hast wohl was überlesen:

            bin absoluter Newbie

            Einen Zähler für die Anzahl der Äpfel in einem Korb und einen zweiten, für die Anzahl der Birnen im Korb daneben nenne ich doch auch eher. zaehler_aepfel und zaehler_birnen als wert1 und wert2 :)

            "name" und "domain" sind immerhin besser als wert1 und wert2.
            local-part und domain-part – naja... fehlt da vielleicht jeweils ein "y" am Ende? ;)

            Gruß, Don P

          2. Hi,

            Einen Zähler für die Anzahl der Äpfel in einem Korb und einen zweiten, für die Anzahl der Birnen im Korb daneben nenne ich doch auch eher. zaehler_aepfel und zaehler_birnen als wert1 und wert2 :)

            Pfui! Besser: zaehler["aepfel"] und zaehler["birnen"]

            cu,
            Andreas

            --
            Warum nennt sich Andreas hier MudGuard?
            O o ostern ...
            Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
            1. Pfui! Besser: zaehler["aepfel"] und zaehler["birnen"]

              Man muss nicht alles in Arrays packen :p

              1. Hi there,

                Pfui! Besser: zaehler["aepfel"] und zaehler["birnen"]

                Man muss nicht alles in Arrays packen :p

                Genau. Der junge angehende Programmierer verwendet im 21.Jahrhundert ein Framework, daß seinem Zählerobjekt eine Apfel- und eine Birneneigenschaft vergibt...

                1. Hallo,

                  Hi there,

                  Pfui! Besser: zaehler["aepfel"] und zaehler["birnen"]

                  Man muss nicht alles in Arrays packen :p

                  Genau. Der junge angehende Programmierer verwendet im 21.Jahrhundert ein Framework, daß seinem Zählerobjekt eine Apfel- und eine Birneneigenschaft vergibt...

                  Als Fortgeschrittener verwendet er dann "äpfel" und "birnen" benannte Korbobjekte mit Füllstandseigenschaften und Zählmethoden, etwa so:

                    
                  var äpfel = new Korb(),  
                      birnen = new Korb();  
                    
                  äpfel.zähl(apfelbaum.schüttel());  
                  birnen.zähl(birnbaum.schüttel());  
                    
                  alert(äpfel.füllstand);  
                  alert(birnen.füllstand);  
                  
                  

                  Gruß, Don P

  2. Mahlzeit Luna,

    <script language="JavaScript" type="text/javascript">
    <!--

    Das Auskommentieren von Javascript-Blöcken ist seit Ende des letzten Jahrtausends nicht mehr erforderlich. Browser, die heutzutage immer noch kein Javascript verstehen, gehören ins Museum.

    function mail()

    Hier definierst Du eine Funktion namens "mail".

    <a href="javascript:mail();">e-Mail</a>

    Und hier missbrauchst Du einen Link und rufst die oben definierte Funktion namens "mail" auf.

    Soweit alles ganz wunderbar. Wenn ich dieses Script aber mehrfach auf einer Seite setze (z. B. mit "meinname", "deinname" etc.),

    Was verstehst Du unter "mehrfach setzen"? Definierst Du die Funktion mit dem gleichen Namen mehrfach? Dann sollte eigentlich klar sein, dass lediglich die letzte Funktionsdeklaration gültig ist.

    Was muss ich ändern??

    Du musst Dein Verständnis von Javascript erheblich erweitern. Außerdem musst Du Dich über das Konzept von http://de.selfhtml.org/javascript/sprache/funktionen.htm@title=Funktionen und Parametern (auch "Argumente" genannt) informieren.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  3. Hallo,

    bin absoluter Newbie und habe folgendes Script integriert

    "integriert" heißt "nicht selber geschrieben"?

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    http://www.w3.org/TR/html4/strict.dtd>
    <html>
    <head>
    <title></title>
    <script language="JavaScript" type="text/javascript">
    <!--
    function mail()
    {
      var name = "meinname";
      var domain = "xyz.com";
      var sendmail = 'mailto:' + name + '@' + domain;
      window.location.href = sendmail;
    }
    // -->
    </script>

    Schon die ersten beiden Zeilen sind schlecht, und die vorletzte auch.
    Als Newbie solltest du ganz vorne anfangen. Lies mal unter <http://de.selfhtml.org/javascript/intro.htm#javascriptbereiche@title=JavaScript-Bereiche in HTML definieren>, wie man das macht.

    Lies dazu doch noch ein bisschen in Selfhtml unter den Stichwort "Funktionen". Dann wird es bestimmt noch klarer.

    Ja: An Funktionen kann man sogenannte Parameter übergeben, mit denen sie dann arbeiten. In diesem Fall wäre z.B. "name" ein geeigneter Kandidat für einen Parameter. Den muss man dann in der Funktion nicht mehr exra mit var deklarieren:

    function mail(name)  
    {  
    window.location.href = 'mailto:' + name + '@example.com';  
    }  
    
    

    Gruß, Don P