lone-star: applet in opera

Hi Leute,

ich habe ein java-applet in einem div, das zunächst mit "display:none" gelanden wird.
Über einen Link kann man den display-mode des divs auf "display:block" ändern.
Anschließend soll das Applet angezeigt werden.

Mit FireFox und IE gibt es da keine Probleme, nur Opera findet das Applet nicht.

Jemand ne Idee woran das liegen kann?

Gibt es eine Möglichkeit das Applet neu zu laden, wenn ich auf den Link gehe?

Besten Dank
lone-star

  1. Hi!

    Mit FireFox und IE gibt es da keine Probleme, nur Opera findet das Applet nicht.

    Wie bindest du das Applet ein?
    Code wäre hilfreich.
    Java ist auch korrekt installiert und das Plugin für Opera ist richtig konfiguriert?
    Andere Applets kannst du also in deinem Opera problemlos laufen lassen?

    Schöner Gruß,
    rob

    1. Hi!

      Mit FireFox und IE gibt es da keine Probleme, nur Opera findet das Applet nicht.
      Wie bindest du das Applet ein?
      Code wäre hilfreich.
      Java ist auch korrekt installiert und das Plugin für Opera ist richtig konfiguriert?
      Andere Applets kannst du also in deinem Opera problemlos laufen lassen?

      Schöner Gruß,
      rob

      Hier ist der Code, leider habe ich keine Ahnung, wie ich den hier anders darstellen kann:

      <div id="uploader" style="display:none;"><span>

      <div id="applet">
      <applet id="javaApplet" mayscript name="z" code="x.class" archive="applets/y.jar">
      <param name="test" value="test">
      </applet>
      </div>

      </span></div>

      über den link änder ich den style von "uploader" auf "display:block;"
      Ist das Applet von Anfang an sichtbar, funktioniert es auch im Opera. So jedoch nicht

      1. Hi!

        über den link änder ich den style von "uploader" auf "display:block;"
        Ist das Applet von Anfang an sichtbar, funktioniert es auch im Opera. So jedoch nicht

        Und dann bekommst du welche Fehlermeldung?

        Warum eigentlich das div im div und dazu noch den span, dem gar kein Style zugewiesen wurde?

        Schöner Gruß,
        rob

        1. Hi!

          über den link änder ich den style von "uploader" auf "display:block;"
          Ist das Applet von Anfang an sichtbar, funktioniert es auch im Opera. So jedoch nicht
          Und dann bekommst du welche Fehlermeldung?

          Warum eigentlich das div im div und dazu noch den span, dem gar kein Style zugewiesen wurde?

          Schöner Gruß,
          rob

          Es kommt nur die Meldung "applet nicht gefunden".

          Offenbar versucht Opera das applet zu laden, kann es aber nicht, da das div-element mit display:none versehen ist.
          änder ich es danach auf display:block, wird das applet nicht initialisiert.

          Gibt es eine Möglichkeit das Applet über javascript neu zu laden?

          Ich habe noch probiert per javascript den inhalt des divs neu zu schreiben mit .innerHTML = "<applet ... ></applet>".
          Das funktioniert soweit, nur dass anschließend opera sie komplette seite nochmal neu lädt. Warum?

  2. Hallo lone-star.

    ich habe ein java-applet in einem div, das zunächst mit "display:none" gelanden wird.
    Über einen Link kann man den display-mode des divs auf "display:block" ändern.
    Anschließend soll das Applet angezeigt werden.

    Mit FireFox und IE gibt es da keine Probleme, nur Opera findet das Applet nicht.

    Jemand ne Idee woran das liegen kann?

    Opera lädt per display:none ausgeblendete Objekte grundsätzlich nicht. Du musst also eine alternative Möglichkeit zum Ausblenden nutzen. Bewährt hat sich die relative Positionierung jenseits der linken Kante des Browserfensters. (left:-9999;)

    Einen schönen Samstag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. Opera lädt per display:none ausgeblendete Objekte grundsätzlich nicht. Du musst also eine alternative Möglichkeit zum Ausblenden nutzen. Bewährt hat sich die relative Positionierung jenseits der linken Kante des Browserfensters. (left:-9999;)

      Hallo Mathias,

      gibt es nicht noch eine saubere Lösung?
      Geht es zb, dass man beim einblenden des divs das applet einfach neu initialisiert? Am besten mit javascript.

      Gruß, lone-star

      1. Hallo lone-star.

        Opera lädt per display:none ausgeblendete Objekte grundsätzlich nicht. Du musst also eine alternative Möglichkeit zum Ausblenden nutzen. Bewährt hat sich die relative Positionierung jenseits der linken Kante des Browserfensters. (left:-9999;)

        gibt es nicht noch eine saubere Lösung?

        Das ist eine; wird unter anderem häufig in Bezug auf Screenreader eingesetzt, da so eher sichergestellt werden kann, dass ausgeblendete Objekte erfasst werden.

        Geht es zb, dass man beim einblenden des divs das applet einfach neu initialisiert? Am besten mit javascript.

        Eine non-JS-Lösung ist im Normalfall vorzuziehen. Das Applet per JS nachträglich aus dem Dokument zu entfernen, nur um des sogleich wieder einzufügen, würde ich als nicht saubere Lösung ansehen, welche du ja nicht möchtest.

        Einen schönen Samstag noch.

        Gruß, Mathias

        --
        ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
        debian/rules
        1. Hallo Mathias Brodala,

          Eine non-JS-Lösung ist im Normalfall vorzuziehen.

          Ja, aber ich denke, wer JavaScript schon deaktiviert hat, wird im Normalfall wohl auch auf JAVA verzeichten.

          Wie sähe es mit visible: hidden aus und einer Höhe von Null? Läd Opera solche Elemente?

          Mit freundlichem Gruß
          Micha

          1. Hallo Mathias Brodala,

            Eine non-JS-Lösung ist im Normalfall vorzuziehen.
            Ja, aber ich denke, wer JavaScript schon deaktiviert hat, wird im Normalfall wohl auch auf JAVA verzeichten.

            Wie sähe es mit visible: hidden aus und einer Höhe von Null? Läd Opera solche Elemente?

            Mit freundlichem Gruß
            Micha

            Vielen Dank für eure Lösungen, der Haken ist bloß,
            ich will nicht, dass beim Laden der Seite das Applet bereits geladen wird. Erst wenn man auf den Link geht, soll das Applet eingefügt und angezeigt werden.

            gruß, lone-star

            1. Hi!

              Vielen Dank für eure Lösungen, der Haken ist bloß,
              ich will nicht, dass beim Laden der Seite das Applet bereits geladen wird. Erst wenn man auf den Link geht, soll das Applet eingefügt und angezeigt werden.

              Wenn du sowieso mit JS arbeitest, dann kannst du auch bei einem Klick auf den Link dein Applet-Tag schreiben:
              var myApplet = document.createElement("applet");

              oder eventuell auch mit document.write oder anderem.

              Schöner Gruß,
              rob

              1. Wenn du sowieso mit JS arbeitest, dann kannst du auch bei einem Klick auf den Link dein Applet-Tag schreiben:
                var myApplet = document.createElement("applet");

                Ok, danke, genau so hab ich es jetzt schon gemacht, funktioniert einwandfrei.

                gruß, lone-star

          2. Hallo derletztekick.

            Eine non-JS-Lösung ist im Normalfall vorzuziehen.
            Ja, aber ich denke, wer JavaScript schon deaktiviert hat, wird im Normalfall wohl auch auf JAVA verzeichten.

            Kann man aber nicht annehmen.

            Wie sähe es mit visible: hidden aus und einer Höhe von Null? Läd Opera solche Elemente?

            Bei ersterem lädt er das Objekt, zweiteres ist ohne eine Angabe zu overflow nicht sinnvoll, bei overflow:hidden lädt er.

            (Hast du keinen Opera zur Verfügung?)

            Einen schönen Samstag noch.

            Gruß, Mathias

            --
            ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
            debian/rules
            1. Hallo Mathias Brodala,

              (Hast du keinen Opera zur Verfügung?)

              Öhm, doch, ich surf gerade mit ihm :-)

              Mit freundlichem Gruß
              Micha

      2. Hi!

        gibt es nicht noch eine saubere Lösung?

        Warum denn unbedingt display:none?
        Mathias hat doch bereits einen Tipp gegeben:

        Bewährt hat sich die relative Positionierung jenseits der linken Kante des Browserfensters. (left:-9999;)

        Positioniere das Div außerhalb des sichtbaren Bereiches und verschiebe das div danach in den sichtbaren Bereich.

        Schöner Gruß,
        rob