Direkta: map soll textlink zeigen

Hallo da draußen,

ich bin ganz neu hier und benötige nach einigen Stunden Probierei unbedingt Hilfe. Mein Problem: Ich möchte gerne in dem Text, den ich per mouseover erscheinen lies, einen Link setzen, den man anklicken kann und der sich in einem neuen Fenster öffnet.

Bisher sieht dieser Bereich (ohne Link) so aus:

<area shape="rect" coords="833,43,949,174" href="http://www.station73.de" target="_blank" alt="www.station73.de"
onMouseOver="show('Name\n &nbsp;&nbsp; Bezeichnung\n\n &nbsp;&nbsp; Telefon +49 123 4567890\n &nbsp;&nbsp; info@domain.de\n &nbsp;&nbsp; www.domain.de')">

Diese letzte Zeile "www.domain.de" soll ein Textlink sein.

Wäre sehr dankbar für eure Hilfe.

Gruß Direkta

  1. Mahlzeit Direkta,

    <area shape="rect" coords="833,43,949,174" href="http://www.station73.de" target="_blank" alt="www.station73.de"
    onMouseOver="show('Name\n &nbsp;&nbsp; Bezeichnung\n\n &nbsp;&nbsp; Telefon +49 123 4567890\n &nbsp;&nbsp; info@domain.de\n &nbsp;&nbsp; www.domain.de')">

    Und was genau tut die Javascript-Funktion "show()"? Wo ist sie definiert?

    Diese letzte Zeile "www.domain.de" soll ein Textlink sein.

    Und woher soll die Funktion "show()" wissen, was genau der Textlink sein soll? Ein Zeilenumbruch befindet sich nämlich nicht vor dem von Dir genannten Text. Was also soll das Kriterium zum Ausschneiden und Link-drumherum-basteln sein?

    MfG,
    EKKi

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

      also.. ich habe da ein Bild mit Personenfotos. Auf jedem liegt ein Hotspot. Der beschriebene ist einer davon. Jeder bewirkt das Erscheinen eines Adressblocks. Den Mouseout habe ich weggelassen, damit man an die Text kann, um den Link zu betätigen oder die Mail-Adresse anzuklicken. Das "show()" zeigt also nur den Adressblock. --> Und in diesem soll nun die www als Link erscheinen. Hoffe, du weißt Rat. Ich dachte, da müsste nur etwas eingefügt werden.. aber mit der herkömmlichen Linkgeschichte a href komm ich da irgendwie nicht klar..

      Gruß Direkta

      1. Mahlzeit Direkta,

        Das "show()" zeigt also nur den Adressblock.

        Deine Javascript-Funktion "show()" blendet also den String, den sie als Parameter übergeben bekommt, in irgendeiner Form als <div>-Layer oder so ein? Wie wär's, wenn Du die Funktionsdefinition mal zeigst, damit man nachvollziehen kann, WAS GENAU die Funktion macht?

        --> Und in diesem soll nun die www als Link erscheinen.

        Richtig. Du hast aber immer noch nicht gesagt, woran die Funktion erkennen soll, dass die letzte "Zeichengruppe" eine Sonderbehandlung bekommen soll ...

        aber mit der herkömmlichen Linkgeschichte a href komm ich da irgendwie nicht klar..

        Natürlich nicht - es handelt sich ja offensichlich nicht um ein HTML-, sondern ein Javascript-Problem ... deswegen auch der Wechsel des Themenbereichs von mir.

        MfG,
        EKKi

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

          mittlerweile sieht das Ganze so aus:

          Leider funktionert es im FF nicht. Das hatte ich gar nicht bemerkt.
          Ich glaube, mein Unwissen hat da ganz schönen Murx fabriziert.

          Im unteren Teil <map name="Map"> sind die beiden ersten und die letzte area mit Internetadressen angegeben. Diese möchte ich gerne in diesen bei Mouseover auf die Hotspots erscheinenden Texten als Link darstellen.

          Ebenso sollen die E-Mail-Adressen gleich verlinkt sein, nur weiß ich nicht wie ich diese mailto-Funktion einbinden soll.

          Ihr habt recht. Es ist Javascript.
          Noch immer wäre ich für eure Hilfe sehr dankbar..
          ----------------------------------------------------------------------------
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
          <title>Name</title>
          <META NAME="keywords" CONTENT="">
          <meta name="description" content="">
          <META NAME="expires" CONTENT="NEVER">
          <META NAME="author" CONTENT="">
          <META NAME="publisher" CONTENT="">
          <META NAME="copyright" CONTENT="">
          <META NAME="page-type" CONTENT="">
          <META NAME="audience" CONTENT="">
          <META NAME="robots" CONTENT="">
          <style type="text/css">
          <!--
          body {
           background-color: #000000;
           margin-left: 0px;
           margin-top: 0px;
           margin-right: 0px;
           margin-bottom: 0px;
          }
          -->
          </style>
          <script language="JavaScript" src="js/automatic.js"></script>
          <script language="JavaScript">
          function show(text)
          {
            document.all.zeile.innerText = text;
          }
          function changeit()
          {
           parent.oben.document.write("hallo");
          }
          </script>
          <link href="css/text.css" rel="stylesheet" type="text/css">
          <link href="css/klein.css" rel="stylesheet" type="text/css">
          </head>
          <body>
          <table width="100%" height="100%" border="0" align="center" cellpadding="0" cellspacing="0">
            <tr>
              <td align="center" valign="top">&nbsp;</td>
              <td width="970" align="center" valign="top" background="bilder/index_hg.gif"><table width="970" height="100%" border="0" cellpadding="0" cellspacing="0" class="text">
                <tr>
                  <td height="400" colspan="2" background="bilder/hg_index.gif"><br>
                      <br>
                      <br>
                    <img src="bilder/index_crew.jpg" width="970" height="210" border="0" usemap="#Map" href="#"></td>
                </tr>
                <tr>
                  <td width="500" height="130" align="right" valign="top" background="bilder/hg_index.gif"><img src="bilder/pfeil_1.gif" width="15" height="15"><span id="zeile">Profitieren Sie von unserem Netzwerk !<img src="bilder/px_transp.gif" width="15" height="10" border="0"></span></td>
                  <td width="470" height="130" align="left" valign="top" background="bilder/hg_index.gif"><div class="text" id="layer" style="position:absolute; width:470px; height:130px; z-index:1"></div></td>
                </tr>
                <tr>
                  <td colspan="2" align="left" valign="bottom">&nbsp;</td>
                </tr>
                <tr>
                  <td height="25" colspan="2" align="center" valign="top" background="bilder/index_hg.gif" bgcolor="#000000" class="klein">| &copy; <a href="http://www.domain.de" target="_blank" class="klein">domain.de</a> | <a href="htm/impressum.htm" class="klein">Impressum | </a></td>
                </tr>
              </table></td>
              <td align="center" valign="top">&nbsp;</td>
            </tr>
          </table>

          <map name="Map">
          <area shape="rect" coords="22,43,131,174" href="http://www.domain.com" target="_blank" title="www.domain.com">
          <a onMouseOver="layer.innerHTML='Name, Tätigkeit<br>Telefon +49 123 4567890<br>info@domain.com<br>www.domain.com'"></a>

          <area shape="rect" coords="145,43,267,174" href="http://www.domain.net" target="_blank" title="www.domain.net">
          <a onMouseOver="layer.innerHTML='Name, Tätigkeit<br>Telefon +49 123 4567890<br>info@domain.net<br>www.domain.net'"></a>

          <area shape="rect" coords="277,43,399,174" href="#">
          <a onMouseOver="layer.innerHTML=Name, Tätigkeit<br>Telefon +49 123 4567890<br>name@web.de'"></a>

          <area shape="rect" coords="412,43,537,174" href="#">
          <a onMouseOver="layer.innerHTML='Name, Tätigkeit<br>Telefon +49 123 4567890<br>name@domain.de'"></a>

          <area shape="rect" coords="553,43,680,174" href="#">
          <a onMouseOver="layer.innerHTML='Name, Tätigkeit<br>Telefon +49 123 4567890<br>name@domain.de'"></a>

          <area shape="rect" coords="692,43,819,174" href="#">
          <a onMouseOver="layer.innerHTML='Name, Tätigkeit<br>Telefon +49 123 4567890<br>name@domain.de'"></a>

          <area shape="rect" coords="833,43,949,174" href="http://www.domain.de" target="_blank" title="www.domain.de">
          <a onMouseOver="layer.innerHTML='Name, Tätigkeit<br>Telefon +49 123 4567890<br>info@domain.de<br>www.domain.de'"></a>
          </map>

          </body>
          </html>
          ----------------------------------------------------------------------------

          Viele Grüße

          Direkta

          1. Mahlzeit Direkta,

            Leider funktionert es im FF nicht. Das hatte ich gar nicht bemerkt.

            Es empfiehlt sich, während des Entwickelns IMMER mit einem vernünftigen Browser zu testen und erst, wenn alles fertig ist, für die Krücke aus Redmond die notwendigen Basteleien vorzunehmen.

            Ebenso sollen die E-Mail-Adressen gleich verlinkt sein, nur weiß ich nicht wie ich diese mailto-Funktion einbinden soll.

            Wir auch nicht und Deine Funktion auch nicht. Du übergibst ihr einfach nur einen String. Woher soll die Funktion wissen, was daran ein Link sein soll und was nicht? Lege eindeutige Kriterien fest oder übergib der Funktion alternativ einfach mehrere Parameter: z.B. einen für den normalen Text und einen anderen für alles, was als Link auftauchen soll.

            <html>
            <head>

            Es fehlt die Angabe eines Dokumenttyps.

            <script language="JavaScript" src="js/automatic.js"></script>
            <script language="JavaScript">

            Es fehlt das zwingend erforderliche "type"-Attribut.

            function show(text)
            {
              document.all.zeile.innerText = text;
            }

            Vernünftige Browser kennen kein "document.all" - das ist reine MICROS~1-Syntax. Nutze stattdessen entsprechende DOM-Funktionen.

            Außerdem kannst Du die Funktion - wie oben beschrieben - erweitern, so dass sie erkennen kann, was sie als Link behandeln soll und was nicht.

            <area shape="rect" coords="22,43,131,174" href="http://www.domain.com" target="_blank" title="www.domain.com">
            <a onMouseOver="layer.innerHTML='Name, Tätigkeit<br>Telefon +49 123 4567890<br>info@domain.com<br>www.domain.com'"></a>

            "layer" ist reine Netscape-Syntax des letzten Jahrtausends. Wo auch immer Du Deinen Code bzw. die Ideen dazu her hast: wechsle dringend Deine Quellen!

            Das, was Du fabrizierst, ist in keinster Weise zeitgemäß.

            MfG,
            EKKi

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

              "layer" ist reine Netscape-Syntax des letzten Jahrtausends. Wo auch immer Du Deinen Code bzw. die Ideen dazu her hast: wechsle dringend Deine Quellen!

              Kleine Korrektur: in diesem Fall nicht. Das ist wieder eine IE-Spezialität alle HTML-Elemente mit einer ID als globale Variablen zur Verfügung zu stellen (der Name 'layer' ist hier nur Zufall).

              Allerdings gilt hier das gleiche wie für document.all: besser die DOM-Methoden (z.B. getElementById) verwenden.

              Gruß,

              Harlequin

              --
              <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
              1. Mahlzeit Harlequin,

                Kleine Korrektur: in diesem Fall nicht. Das ist wieder eine IE-Spezialität alle HTML-Elemente mit einer ID als globale Variablen zur Verfügung zu stellen (der Name 'layer' ist hier nur Zufall).

                Argl, hast Recht - ist mir überhaupt nicht aufgefallen, dieses 'id="layer"' ... OMG, das ist ja alles noch viel schlimmer als es auf den ersten Blick den Anschein hatte.

                Allerdings gilt hier das gleiche wie für document.all: besser die DOM-Methoden (z.B. getElementById) verwenden.

                In der Tat, das kann man dem OP wirklich nur dringendst(!!!11einseinsELF) empfehlen.

                MfG,
                EKKi

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

                  ihr merke hier deutlich, dass ihr Ahnung habt und ich keine.. oder nur sehr wenig. Meine Strategie besteht derzeit in Anlesen und selbst versuchen. Von Verstehen kann da noch keine Rede sein.

                  Viele Grüße

                  Direkta

                  Mahlzeit Harlequin,

                  Kleine Korrektur: in diesem Fall nicht. Das ist wieder eine IE-Spezialität alle HTML-Elemente mit einer ID als globale Variablen zur Verfügung zu stellen (der Name 'layer' ist hier nur Zufall).

                  Argl, hast Recht - ist mir überhaupt nicht aufgefallen, dieses 'id="layer"' ... OMG, das ist ja alles noch viel schlimmer als es auf den ersten Blick den Anschein hatte.

                  Allerdings gilt hier das gleiche wie für document.all: besser die DOM-Methoden (z.B. getElementById) verwenden.

                  In der Tat, das kann man dem OP wirklich nur dringendst(!!!11einseinsELF) empfehlen.

                  MfG,
                  EKKi

                  1. Yerf!

                    ihr merke hier deutlich, dass ihr Ahnung habt und ich keine.. oder nur sehr wenig. Meine Strategie besteht derzeit in Anlesen und selbst versuchen. Von Verstehen kann da noch keine Rede sein.

                    Deswegen versuchen wir ja dir die Stellen zu zeigen, die Problematisch sind.

                    Konkret:

                    document.all.zeile.innerText

                    Diese Zeile versucht die EIgenschaft 'innerText' des Elements mit der ID 'zeile' anzusprechen, allerdings funktioniert das nur im IE.

                    Allgemein muss der Zugriff über http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id@title=getElementById() laufen. Außerdem ist 'innerTEXT' ebenfalls IE-spezifisch, an der Stelle könntest du aber 'innerHTML' verwenden, das verstehen alle Browser.

                    Ähnlich ist es bei:

                    layer.innerHTML

                    Hier wird das Element mit der ID 'layer' angesprochen, aber wieder auf eine Weise, die nur im IE funktioniert. Die Lösung ist die gleiche wie im ersten Fall.

                    Gruß,

                    Harlequin

                    --
                    <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
                    1. Lieben Dank Harlequin,

                      ich werde das mal ausprobieren.

                      VG Direkta

                  2. Mahlzeit Direkta,

                    ihr merke hier deutlich, dass ihr Ahnung habt und ich keine.. oder nur sehr wenig.

                    Das macht ja nichts - schließlich kann man das ändern, z.B. durch ...

                    Meine Strategie besteht derzeit in Anlesen und selbst versuchen.

                    ... was ich sehr begrüße.

                    Trotz des bisher vielleicht mangelnden Verständnisses solltest Du aber nicht den Fehler machen und alles, was Du Dir so bei anderen anschaust, einfach so zu übernehmen. Wie Du an diesem konkreten Beispiel vielleicht mitbekommen hast, kursiert im Netz und in Büchern erheblich mehr schlechter und veralteter Code als brauchbarer.

                    Von Verstehen kann da noch keine Rede sein.

                    Auch Liliputaner haben klein angefangen ...

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                    1. :) Danke EKKI. Gebe mir Mühe. Diese ewige Der-Browser-kann-das-und-der-kann's-besser-Geschichte ist wohl auch das Ätzendste, das es geben kann. Eine einheitliche Lösung könnte allen ne Menge Aufwand ersparen. Oder?

                      VG Direkta

                      1. Mahlzeit Direkta,

                        :) Danke EKKI. Gebe mir Mühe. Diese ewige Der-Browser-kann-das-und-der-kann's-besser-Geschichte ist wohl auch das Ätzendste, das es geben kann.

                        Welcome to our world. :-)

                        Eine einheitliche Lösung könnte allen ne Menge Aufwand ersparen. Oder?

                        Halte Dich an W3C-Standards. Jeder Browser, der damit nicht zurecht kommt, hat keine Existenzberechtigung. Das ist die einfachste und konsequenteste Lösung.

                        MfG,
                        EKKi

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

      leider scheint der Ekki gerade verhindert.. Kann mir irgendwer helfen?
      Ich benötige da eine Lösung..

      Viele Grüße

      Direkta

      1. Hi,

        leider scheint der Ekki gerade verhindert..

        Ziehe in Betracht, dass er, wie andere auch, vielleicht keine Lust hat, sich *ausschliesslich* um dich und deine Probleme zu kuemmern.

        Kann mir irgendwer helfen?
        Ich benötige da eine Lösung..

        Uebe dich bitte erst mal in ein bisschen Geduld, und fange nicht sofort an zu Draengeln!

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
        1. Hallo ChrisB,

          hast recht. Tut mir leid.

          Viele Grüße

          Direkta

      2. Hallo,

        leider scheint der Ekki gerade verhindert..

        für mich sieht es eher so aus, als warte er noch auf eine Antwort.

        Ich benötige da eine Lösung..

        Dann könntest du uns in der Zwischenzeit ja endlich mal zeigen, was deine Funktion show() macht. Da könnte nämlich des Lösels Rätsung liegen.

        Ciao,
         Martin

        --
        Die letzten Worte des Fallschirmspringers:
        ELENDE SCHEISSMOTTEN!!