andreas: /evtl. Javascript: ein kompatibelitätsproblem

Hallo Leute
Ich habe Probleme mit einem relativ einfachen Script und weis nicht warum.
folgende Zeile:
<td align="center" onClick="javascript:window.opener.suchmaske.zeit1.value='02.09.2003';self.close();" style="cursor:hand;" >
02</td>
soll aus einem popup Fenster (es handelt sich um einen Kalender)
das gewünschte Datum in das Feld zeit1 (input type text) im Formular suchmaske der Ursprungsseite zurückschreiben.
Der Internet Explorer 6.0 macht das auch, alle varianten Mozilla (egal ob Mozilla selber Netscape oder Opera) verhindern, daß man den Link überhaupt anklicken kann (keine Hand kein Pfeil sondern der cursor).
kann mir jemand sagen wie Ich das hinbekomme ?
Danke Andreas

  1. Hallo Andreas,

    <td align="center" onClick="javascript:

    in Event-Handlern hat "javascript:" nichts zu suchen

    window.opener.suchmaske.zeit1.value='02.09.2003';

    versuchs mal ohne "window."

    self.close();" style="cursor:hand;" >

    cursor:hand; gibt es nicht - cursor:pointer; dagegen schon (siehe: http://selfhtml.teamone.de/css/eigenschaften/anzeigefenster.htm#cursor) (wobei cursor:hand; afaik für irgendeinen alten IE nötig ist)

    Der Internet Explorer 6.0 macht das auch,

    das heißt noch lange nicht, dass es richtig ist :-)

    alle varianten Mozilla (egal ob Mozilla selber Netscape oder Opera) verhindern, daß man den Link überhaupt anklicken kann (keine Hand kein Pfeil sondern der cursor).

    anklicken kannst du es trotzdem - onclick wird schließlich auch ausgewertet, wenn der Cursor keine Hand ist.

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Hallo Tobias
      Danke für die schnelle Antwort, Ich werde es gleich mal ausprobieren.

      alle varianten Mozilla (egal ob Mozilla selber Netscape oder Opera) verhindern, daß man den Link überhaupt anklicken kann (keine Hand kein Pfeil sondern der cursor).
      anklicken kannst du es trotzdem - onclick wird schließlich auch ausgewertet, wenn der Cursor keine Hand ist.

      anklicken des cursors hat auch nicht funktioniert, er hat den Link anscheinend garnicht als solchen erkannt.
      MfG
      Andreas

    2. Hallo Tobias
      Ich habe die änderungen, die du mir beschrieben hast jetzt gemacht.
      es sieht jetzt wie folgt aus:
      <td align="center" onClick="opener.suchmaske.zeit2.value='02.09.2003';self.close();" style="cursor:pointer;" >
      02</td>
      Im Internet Explorer funktioniert es nach wie vor, Opera führt es jetzt auch aus, aber Netscape (und Mozilla) zeigen jetzt zwar den cursor an, führen die Befehle des onClick aber nicht aus.
      hast du evtl. noch eine Idee was da schief gehen könnte ?
      Danke
      Andreas

      1. Hallo Andreas,

        aber Netscape (und Mozilla) zeigen jetzt zwar den cursor an, führen die Befehle des onClick aber nicht aus.

        bekommst du eine Fehlermeldung? Wenn ja, welche?

        hast du evtl. noch eine Idee was da schief gehen könnte ?

        nein, aber eine Testseite wäre hilfreich - so ganz ohne dir restliche Seite ist das etwas schwer zu sagen, was da falsch ist.

        Grüße aus Nürnberg
        Tobias

        --
        Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
        1. Hallo Tobias

          aber Netscape (und Mozilla) zeigen jetzt zwar den cursor an, führen die Befehle des onClick aber nicht aus. bekommst du eine Fehlermeldung? Wenn ja, welche?

          Nein es passiert einfach nur nichts

          hast du evtl. noch eine Idee was da schief gehen könnte ? nein, aber eine Testseite wäre hilfreich - so ganz ohne dir restliche Seite ist das etwas schwer zu sagen, was da falsch ist.

          das ist der Quelltext des popup Windows (wurde von php generiert): <html> <head> <title>begrenzen vom:</title> <style type="text/css"> .small{font-family:arial;font-size:8pt;} .bg1{background-color:#ffffff;} .bg3 {background-color:#A4CBF2;} td {color:#052E97;font-family:arial;font-size:8pt;}

          a.concert1:link{font-weight:bold;text-decoration:none;color:#ffffff;} a.concert1:visited{font-weight:bold;text-decoration:none;color:#ffffff;} a.concert1:hover{font-weight:bold;text-decoration:underline;color:#000000;} a.concert1:active{font-weight:bold;text-decoration:none;color:#ffffff;}

          </style> </head> <body bgColor="#E8EAF6"> <form method="get" action="" name="form1"> <table border="0" width="160" cellpadding="0" cellspacing="0">  <tr>   <td align="center">   <select name="year" onChange="document.form1.submit();" style="color:#083094; background-color:#E8EAF6; border-width:1; border-color:#083094; border-style:ridge;">       <option value="2003" selected>2003</option>

          <option value="2002" >2002</option>       <option value="2001" >2001</option>       <option value="2000" >2000</option>       <option value="1999" >1999</option>       <option value="1998" >1998</option>       <option value="1997" >1997</option>

          <option value="1996" >1996</option>     </select>   </td>   <td align="center">   <select name="month" onChange="document.form1.submit();" style="color:#083094; background-color:#E8EAF6; border-width:1; border-color:#083094; border-style:ridge;">       <option value="01" >January</option>       <option value="02" >February</option>

          <option value="03" >March</option>       <option value="04" >April</option>       <option value="05" >May</option>       <option value="06" >June</option>       <option value="07" >July</option>       <option value="08" >August</option>

          <option value="09" selected>September</option>       <option value="10" >October</option>       <option value="11" >November</option>       <option value="12" >December</option>     </select>   </td>  </tr>

          </table> </form> <table width="160" border="0" cellspacing="2" cellpadding="0" class="small">  <tr>   <td colspan="4"><b>2003</b></td>   <td colspan="4" align="right"><b>September</b></td>  </tr>  <tr>   <td colspan="8"><img src="pixel_white.gif" width="160" height="1" alt=""></td>

          </tr>  <tr class="bg1">   <td align="center"><b>Mo</b></td>   <td align="center"><b>Di</b></td>   <td align="center"><b>Mi</b></td>   <td align="center"><b>Do</b></td>   <td align="center"><b>Fr</b></td>

          <td align="center"><b>Sa</b></td>   <td align="center"><b>So</b></td>   <td align="center"><b>KW</b></td>  </tr>  <tr><td align="center" onClick="opener.suchmaske.zeit1.value='01.09.2003';self.close();" class="bg3"  style="cursor:pointer;" > 01</td> <td align="center" onClick="opener.suchmaske.zeit1.value='02.09.2003';self.close();" style="cursor:pointer;" > 02</td>

          <td align="center" onClick="opener.suchmaske.zeit1.value='03.09.2003';self.close();" class="bg3"  style="cursor:pointer;" > 03</td> <td align="center" onClick="opener.suchmaske.zeit1.value='04.09.2003';self.close();" style="cursor:pointer;" > 04</td> <td align="center" onClick="opener.suchmaske.zeit1.value='05.09.2003';self.close();" class="bg3"  style="cursor:pointer;" > 05</td> <td align="center" onClick="opener.suchmaske.zeit1.value='06.09.2003';self.close();" style="cursor:pointer;" > 06</td> <td align="center" onClick="opener.suchmaske.zeit1.value='07.09.2003';self.close();" class="bg3"  style="cursor:pointer;" > 07</td>

          <td align="center" class="bg1">36</td>

          </tr><tr><td align="center" onClick="opener.suchmaske.zeit1.value='08.09.2003';self.close();" class="bg3"  style="cursor:pointer;" > 08</td> <td align="center" onClick="opener.suchmaske.zeit1.value='09.09.2003';self.close();" style="cursor:pointer;" > 09</td> <td align="center" onClick="opener.suchmaske.zeit1.value='10.09.2003';self.close();" class="bg3"  style="cursor:pointer;" > 10</td> <td align="center" onClick="opener.suchmaske.zeit1.value='11.09.2003';self.close();" style="cursor:pointer;" > 11</td> <td align="center" onClick="opener.suchmaske.zeit1.value='12.09.2003';self.close();" class="bg3"  style="cursor:pointer;" > 12</td> <td align="center" onClick="opener.suchmaske.zeit1.value='13.09.2003';self.close();" style="cursor:pointer;" >

          13</td> <td align="center" onClick="opener.suchmaske.zeit1.value='14.09.2003';self.close();" class="bg3"  style="cursor:pointer;" > 14</td>

          <td align="center" class="bg1">37</td>  </tr><tr><td align="center" onClick="opener.suchmaske.zeit1.value='15.09.2003';self.close();" class="bg3"  style="cursor:pointer;" > 15</td> <td align="center" onClick="opener.suchmaske.zeit1.value='16.09.2003';self.close();" style="cursor:pointer;" > 16</td> <td align="center" onClick="opener.suchmaske.zeit1.value='17.09.2003';self.close();" class="bg3"  style="cursor:pointer;" >

          17</td> <td align="center" onClick="opener.suchmaske.zeit1.value='18.09.2003';self.close();" style="cursor:pointer;" > 18</td> <td align="center" onClick="opener.suchmaske.zeit1.value='19.09.2003';self.close();" class="bg3"  style="cursor:pointer;" > 19</td> <td align="center" onClick="opener.suchmaske.zeit1.value='20.09.2003';self.close();" style="cursor:pointer;" > 20</td> <td align="center" onClick="opener.suchmaske.zeit1.value='21.09.2003';self.close();" class="bg3"  style="cursor:pointer;" > 21</td>

          <td align="center" class="bg1">38</td>

          </tr><tr><td align="center" onClick="opener.suchmaske.zeit1.value='22.09.2003';self.close();" class="bg3"  style="cursor:pointer;" > 22</td> <td align="center" onClick="opener.suchmaske.zeit1.value='23.09.2003';self.close();" style="cursor:pointer;" > 23</td> <td align="center" onClick="opener.suchmaske.zeit1.value='24.09.2003';self.close();" style="cursor:pointer;"  bgcolor="#5EBFBD">24</td> <td align="center" onClick="opener.suchmaske.zeit1.value='25.09.2003';self.close();" style="cursor:pointer;" > 25</td> <td align="center" onClick="opener.suchmaske.zeit1.value='26.09.2003';self.close();" class="bg3"  style="cursor:pointer;" > 26</td> <td align="center" onClick="opener.suchmaske.zeit1.value='27.09.2003';self.close();" style="cursor:pointer;" > 27</td>

          <td align="center" onClick="opener.suchmaske.zeit1.value='28.09.2003';self.close();" class="bg3"  style="cursor:pointer;" > 28</td>

          <td align="center" class="bg1">39</td>  </tr><tr><td align="center" onClick="opener.suchmaske.zeit1.value='29.09.2003';self.close();" class="bg3"  style="cursor:pointer;" > 29</td> <td align="center" onClick="opener.suchmaske.zeit1.value='30.09.2003';self.close();" style="cursor:pointer;" > 30</td> <td align="center" onClick="opener.suchmaske.zeit1.value='31.09.2003';self.close();" class="bg3" > </td> <td align="center" onClick="opener.suchmaske.zeit1.value='32.09.2003';self.close();">

          </td> <td align="center" onClick="opener.suchmaske.zeit1.value='33.09.2003';self.close();" class="bg3" > </td> <td align="center" onClick="opener.suchmaske.zeit1.value='34.09.2003';self.close();"> </td> <td align="center" onClick="opener.suchmaske.zeit1.value='35.09.2003';self.close();" class="bg3" > </td>

          <td align="center" class="bg1">40</td>  </tr></table>

          </body> </html> hier ist die stelle wo das popup aufgerufen wird im script suchmaske.php: <script language="JavaScript"> <!-- function popup($jsauswahl) {  $jsurl="calendar_popup.php?jsauswahl="+$jsauswahl;  var fenster= window.open($jsurl,"calendar","height=200,width=185");  fenster.focus();  return false; } // --> </script> ... <form action="index.php?..." method="post" target="" name="suchmaske"> ... <input type="text" name="zeit1" value="<? echo $zeit1; ?>" maxlength="10" size="9" style="font-family:Arial; font-style:normal; font-weight:normal; color:#083094; background-color:white; margin:0; padding:0; border-width:0; border-color:white;" readonly="readonly">  <input type="image" src="../images/Kalender3b.jpg" width="22" height="22" onClick="javascript: return popup(1);"> ...

          Der Kalender kann mit 2 parametern aufgerufen werden (zeitraum von / zeitraum bis)

          Danke Andreas

          1. Hallo Andreas,

            aber Netscape (und Mozilla) zeigen jetzt zwar den cursor an, führen die Befehle des onClick aber nicht aus.
            bekommst du eine Fehlermeldung? Wenn ja, welche?
            Nein es passiert einfach nur nichts

            wirklich keine? hast du die Javascript-Konsole mal geöffnet? (Tools -> Web-Entwicklung -> Javscript-Konsole)

            hast du evtl. noch eine Idee was da schief gehen könnte ?
            nein, aber eine Testseite wäre hilfreich - so ganz ohne dir restliche Seite ist das etwas schwer zu sagen, was da falsch ist.
            das ist der Quelltext des popup Windows (wurde von php generiert):

            interessanter wäre ein url, unter der man sich das ganze anschauen kann.

            <script language="JavaScript">

            hier fehlt das type-Attribut

            function popup($jsauswahl)
            {
             $jsurl="calendar_popup.php?jsauswahl="+$jsauswahl;
             var fenster= window.open($jsurl,"calendar","height=200,width=185");

            ehh... kann es sein, dass du da js und php etwas durcheinander würfelst? (entweder js oder php - mischen kann man das nicht einfach (php kann zwar js ausgeben, js weiß aber nichts von php))

            Grüße aus Nürnberg
            Tobias

            --
            Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
            1. Hallo Tobias

              aber Netscape (und Mozilla) zeigen jetzt zwar den cursor an, führen die Befehle des onClick aber nicht aus.
              bekommst du eine Fehlermeldung? Wenn ja, welche?
              Nein es passiert einfach nur nichts
              wirklich keine? hast du die Javascript-Konsole mal geöffnet? (Tools -> Web-Entwicklung -> Javscript-Konsole)

              Hab Ich mir im Mozilla mal angeguckt, da steht: Error: opener.suchmaske has no properties

              hast du evtl. noch eine Idee was da schief gehen könnte ?
              nein, aber eine Testseite wäre hilfreich - so ganz ohne dir restliche Seite ist das etwas schwer zu sagen, was da falsch ist.
              das ist der Quelltext des popup Windows (wurde von php generiert):
              interessanter wäre ein url, unter der man sich das ganze anschauen kann.

              Ich habe im Moment leider keine möglichkeit das online zu setzen.

              <script language="JavaScript">
              hier fehlt das type-Attribut

              stimmt, allerdings wird das Fenster ja korrekt aufgebaut, daß kann es demnach doch nicht sein oder?

              function popup($jsauswahl)
              {
               $jsurl="calendar_popup.php?jsauswahl="+$jsauswahl;
               var fenster= window.open($jsurl,"calendar","height=200,width=185");
              ehh... kann es sein, dass du da js und php etwas durcheinander würfelst? (entweder js oder php - mischen kann man das nicht einfach (php kann zwar js ausgeben, js weiß aber nichts von php))

              Nein es handelt sich um Javascript Variabeln Ich habe Sie einfach nur $jsauswahl und $jsurl genannt um Sie als solche zu erkennen, Sie dienen auch nur dazu, daß das popup script erkennt, ob er das gewählte Datum in das textfeld zeitraum von, oder zeitraum bis schreiben soll.

              Grüße aus Nürnberg
              Tobias

              Danke
              Andreas

  2. hi,

    <td align="center" onClick="javascript:window.opener.suchmaske.zeit1.value='02.09.2003';self.close();" style="cursor:hand;" >
    02</td>

    ob's dein problem löst, k.A. - aber in einem eventhandler hat das label "javascript:" nichts zu suchen.

    alle varianten Mozilla (egal ob Mozilla selber Netscape oder Opera) verhindern, daß man den Link überhaupt anklicken kann (keine Hand kein Pfeil sondern der cursor).

    du hast gar keinen link an dieser stelle.
    und cursor:hand ist IE-only, es muss cursor:pointer heissen.

    gruss,
    wahsaga

    1. Hallo wahsaga
      Danke für die Antwort hab Ich gemacht.
      MfG
      ANdreas

  3. <td align="center" onClick="javascript:window.opener.suchmaske.zeit1.value='02.09.2003';self.close();" style="cursor:hand;" >

    wer hat dir gesagt das da 'javascript:' reingehört?
    Das ist nur ein unnötiges Label, dass in Browsern die keine Label kennen zu Fehlermeldungen führt.

    02</td>
    soll aus einem popup Fenster (es handelt sich um einen Kalender)
    das gewünschte Datum in das Feld zeit1 (input type text) im Formular suchmaske der Ursprungsseite zurückschreiben.
    Der Internet Explorer 6.0 macht das auch, alle varianten Mozilla (egal ob Mozilla selber Netscape oder Opera) verhindern, daß man den Link überhaupt anklicken kann (keine Hand kein Pfeil sondern der cursor).

    Hast du mal in die Javascript konsole geguckt, was für einen Fehler du erhälst?

    warte ich sag es dir: nein.

    Du weißt nicht was das ist: http://glasgoogle.de

    Wir müssen nämlich ohne Fehlermeldungen raten, das kann sehr langweilig sein.

    Aber ich kan dir es dir verraten, er kennt das Objekt: window.opener.suchmaske nicht, es sein denn du hast in opener einen Frameset mit dem Namen 'suchmaske'.

    Ich nehme an suchmaske ist ein Formular eines Dokumentes, oder?

    Folglich ist suchmaske ein Objekt des Dokumentes.

    HTH.

    Struppi.

    1. Hallo Strupi
      Danke für deine Antwort

      02</td>
      soll aus einem popup Fenster (es handelt sich um einen Kalender)
      das gewünschte Datum in das Feld zeit1 (input type text) im Formular suchmaske der Ursprungsseite zurückschreiben.
      Der Internet Explorer 6.0 macht das auch, alle varianten Mozilla (egal ob Mozilla selber Netscape oder Opera) verhindern, daß man den Link überhaupt anklicken kann (keine Hand kein Pfeil sondern der cursor).

      Hast du mal in die Javascript konsole geguckt, was für einen Fehler du erhälst?

      Ich bekomme keinen Fehler und weis tatsächlich nicht was die Javascriptkonsole ist kannst du es mir kurz beschreiben damit Ich weis ob Ich sowas brauche?

      Aber ich kan dir es dir verraten, er kennt das Objekt: window.opener.suchmaske nicht, es sein denn du hast in opener einen Frameset mit dem Namen 'suchmaske'.

      nein das Frame heist haupt, wenn Ich das allerding zwischen opener und suchmaske einsetze läuft es in keinem Browser mehr, außerdem sollte doch soweit Ich das verstanden habe opener die Aufgabe übernehmen, daß das Frame angesprochen wird aus dem heraus das window geöffnet wurde oder?

      Ich nehme an suchmaske ist ein Formular eines Dokumentes, oder?

      Ja steht ja oben "in das Feld zeit1 (input type text) im Formular suchmaske"

      Folglich ist suchmaske ein Objekt des Dokumentes.

      kannst du mir evtl. sagen, was Ich daraus schließen soll?
      Danke Andreas

      1. Hast du mal in die Javascript konsole geguckt, was für einen Fehler du erhälst?
        Ich bekomme keinen Fehler und weis tatsächlich nicht was die Javascriptkonsole ist kannst du es mir kurz beschreiben damit Ich weis ob Ich sowas brauche?

        Ich hab dir einen Link gezeigt http://glasgoogle.de

        Aber ich kan dir es dir verraten, er kennt das Objekt: window.opener.suchmaske nicht, es sein denn du hast in opener einen Frameset mit dem Namen 'suchmaske'.
        nein das Frame heist haupt, wenn Ich das allerding zwischen opener und suchmaske einsetze läuft es in keinem Browser mehr, außerdem sollte doch soweit Ich das verstanden habe opener die Aufgabe übernehmen, daß das Frame angesprochen wird aus dem heraus das window geöffnet wurde oder?

        Ja, aber so wie du es oben schreibst, ist suchmaske ein Unterobjekt vom Fenster 'opener', d.h. es ist entweder ein Fenster/Frame oder ein von dir definiertes Objekt.

        Ich nehme an suchmaske ist ein Formular eines Dokumentes, oder?
        Ja steht ja oben "in das Feld zeit1 (input type text) im Formular suchmaske"
        Folglich ist suchmaske ein Objekt des Dokumentes.
        kannst du mir evtl. sagen, was Ich daraus schließen soll?

        Du kennst selfhtml? warte ich geb dir den Link http://www.netzwelt.com/selfhtml/javascript/objekte/document.htm

        Elemente eines Dokumentes sprichst du damit an, und das der IE das anzeigt ist eher ein Bug als richtig.

        Ich würde dir dringend raten die von dir verwendete Dokumentation zu wechseln.

        Struppi.

  4. Hallo Leute
    Danke an alle, die mir geantwortet haben.
    jetzt funktioniert es wie gewünscht,
    damit alle genannten Browser es ausführen, muß es so aussehen:
    <td align="center" onClick="opener.document.suchmaske.zeit2.value='02.09.2003';self.close();" style="cursor:pointer;" >
    02</td>
    MfG Andreas