Katharina: Mozilla - Dhtml/Dom

Hallo!

Hat jemand ne Ahnung, was man alles ändern muss, wenn man ne XML-Seite, die im Internet Explorer ging, im Mozilla verwenden kann außer dass man das Stylesheet clientseitig einbindet?

ZBsp steht in der XML-Datei
//Braucht man für IE5 DHTML DOM
var DHTMLobj = document.all.item(obj_name);
if (DHTMLobj != null) {
  DHTMLobj.style.backgroundcolor = "yellow";
}

Das muss man bestimmt ändern oder? Nur wie?

Könnte mir da jmd n Rat oder ne gute INternetseite empfehlen?
Vielen DAnk im Voraus
Lg Katharina

  1. //Braucht man für IE5 DHTML DOM
    var DHTMLobj = document.all.item(obj_name);
    if (DHTMLobj != null) {
      DHTMLobj.style.backgroundcolor = "yellow";
    }

    Das muss man bestimmt ändern oder? Nur wie?

    Moin,

    also pauschal lässt sich das nicht beantworten. In deinem Codeschnipsel wird z.B. auf das document.all objekt geprüft, das es nur im IE gibt. Wenn es da nicht schon eine Browserweiche im Code gibt, müsstest du solche Stellen z.B. durch getElementById ersetzen.

    cu mipu

    1. Habe gesehen das Problem liegt viel weiter oben. Will da nämlich eine svg-Datei mit einbauen. Und versuche mit:

      var svgdoc = document.figure.getSVGDocument();

      das Svg-Objekt zu bekommen, um darauf zu zugreifen, aber er gibt immer undefined zurück ;-((

      Weißt du da auch einen Rat??
      LG Katharina

      Ps: Hier ein Code-ausschnitt:
      <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:xlink="http://www.w3.org/1999/xlink"
        version="1.0">
      <xsl:output method="html" version="4"/>

      <xsl:template match="/">
      <html>
      <head>
      <title>Parts Catalog</title>
      <script><![CDATA[

      var item_selected = null;

      function on_mouse_over (ID)
      {
       if (ID == item_selected)
        return true;

      var obj_name = "part-";
       obj_name = obj_name.concat(ID);

      var svgdoc = document.figure.getSVGDocument();
              //Ab hier kommt er nicht mehr weiter ;-((
       var svgobj = svgdoc.getElementById(obj_name);

      1. Weißt du da auch einen Rat??
        LG Katharina

        Hallo Katharina,

        "google -> getSVGDocument" liefert z.B. http://forum.de.selfhtml.org/archiv/2004/2/72093/

        :))

        cu mipu

        1. "google -> getSVGDocument" liefert z.B. http://forum.de.selfhtml.org/archiv/2004/2/72093/

          Ich verwende natürlich den ASV. Habe das auch schon im Forum gelesen gehabt. Im IE funktioniert es auch, aber nicht im Mozilla, wenn ich

          var svgdoc = document.getElementById("figure").getSVGDocument();
          ...
          <body>
          <div align="center">
          <embed id ="figure" width="540" height="540" type="image/svg+xml" pluginspage="http://www.adobe.com/svg/viewer/install/" src="figure.svg"</embed>
          </div>
          ..
          </body>

          verwende.
          Lg Katharina

          1. Hallo,

            Ich verwende natürlich den ASV. Habe das auch schon im Forum gelesen gehabt. Im IE funktioniert es auch, aber nicht im Mozilla, ...

            Das schrieb ich ja bereits unter [pref:t=83657&m=489206]. Der Weg zwischen HTML-DOM und SVG-DOM ist unter ASV + Mozilla-Derivaten definitiv blockiert.

            Versuche einen anderen Ansatz, der nicht ueber das DOM des HTML-Dokuments zugreift, sondern direkt im SVG-Dokument arbeitet.

            MfG, Thomas

            1. Das schrieb ich ja bereits unter [pref:t=83657&m=489206]. Der Weg zwischen HTML-DOM und SVG-DOM ist unter ASV + Mozilla-Derivaten definitiv blockiert.

              Versuche einen anderen Ansatz, der nicht ueber das DOM des HTML-Dokuments zugreift, sondern direkt im SVG-Dokument arbeitet.

              Vielen Dank - war mir erst nicht sicher, ob ich das richtig verstanden habe ;-))

              Ok, dann werd ichs mal versuchen direkt im SVG-Dokument einzutragen.

              Nochmal danke :-)
              Katharina

              1. Hi,

                ich habe jetz versucht einen anderen Weg zu versuchen, da ja Thomas (nochma danke für die Info) meinte, dass der Weg zwischen HTML-DOM und SVG-DOM unter ASV&Mozilla blockiert ist.

                Ich möchte auf meiner Seite in der oberen Hälfte eine Graphik angezeigt bekommen und untendrunter eine Tabelle und diese beiden dann verlinken. Also wenn man sich in der Tabelle in einer bestimmten Zeile befindet, soll auf der Graphik die dazugehörige Ziffer hervorgehoben werden und andersrum wenn man in der Graphik über die Ziffer mit dem Mauszeiger kommt, soll die zugehörige Tabellenzeile hervorgehoben werden.

                Ich habe mir gedacht, es könnte jetz alles (Javascript, Graphik, Tabelle) mit Hilfe einer SVG-Datei funktionieren. Schaff es auch die Graphik anzuzeigen, aber die Tabelle wird nicht angezeigt. Darf ich hierfür keinen HTML-Coder verwenden?? Muss ich das sonst in xml schreiben?? Kann mir jmd hierfür einen tip geben. Wäre euch echt dankbar.
                Lg Katharina

            2. Hi,

              ich habe jetz versucht einen anderen Weg zu versuchen, da ja Thomas (nochma danke für die Info) meinte, dass der Weg zwischen HTML-DOM und SVG-DOM unter ASV&Mozilla blockiert ist.

              Ich möchte auf meiner Seite in der oberen Hälfte eine Graphik angezeigt bekommen und untendrunter eine Tabelle und diese beiden dann verlinken. Also wenn man sich in der Tabelle in einer bestimmten Zeile befindet, soll auf der Graphik die dazugehörige Ziffer hervorgehoben werden und andersrum wenn man in der Graphik über die Ziffer mit dem Mauszeiger kommt, soll die zugehörige Tabellenzeile hervorgehoben werden.

              Ich habe mir gedacht, es könnte jetz alles (Javascript, Graphik, Tabelle) mit Hilfe einer SVG-Datei funktionieren. Schaff es auch die Graphik anzuzeigen, aber die Tabelle wird nicht angezeigt. Darf ich hierfür keinen HTML-Coder verwenden?? Muss ich das sonst in xml schreiben?? Kann mir jmd hierfür einen tip geben. Wäre euch echt dankbar.
              Lg Katharina

              1. Hallo,

                Ich habe mir gedacht, es könnte jetz alles (Javascript, Graphik, Tabelle) mit Hilfe einer SVG-Datei funktionieren. Schaff es auch die Graphik anzuzeigen, aber die Tabelle wird nicht angezeigt. Darf ich hierfür keinen HTML-Coder verwenden?? Muss ich das sonst in xml schreiben??

                Man kann vom Prinzip her durchaus verschiedene XML-Dialekte mischen, also etwa SVG und XHTML -- nur wird das kaum ein Browser akzeptabel umsetzen (vielleicht eine der SVG-enabled Builds, dann allerdings auch nur mit entsprechender Praeparation der Namensraum-Prefixes). Eine Idee zum Einbinden von HTML-Code ist die Nutzung des Elements foreignObject mit dem ASV 6.0, siehe: http://svglbc.datenverdrahten.de/?code=foreignObject&znr=on.

                Ich wuerde es mit einer Server-seitigen Sprache versuchen und SVG und HTML in getrennten Frames oder IFrames halten und dann bei Aenderungen [via JS, ggf. unter Nutzung der Methoden getURL() oder postURL()] komplett neuen SVG-Code dynamisch laden, was dann evtl. nicht mehr so schnell funktioniert wie eine einfache Mouseover-Aktion.

                Oder die Tabelle wird im SVG-Dokument mittels Rechtecken, Linien und Text manuell nachgebildet ...

                MfG, Thomas

                1. Hi Thomas,

                  danke für die Antwort ;-))

                  Eine Idee zum Einbinden von HTML-Code ist die Nutzung des Elements foreignObject mit dem ASV 6.0, siehe: http://svglbc.datenverdrahten.de/?code=foreignObject&znr=on.

                  Kann es sein, dass der Adobe Viewer nicht foreignObject verwendet? Habe das Bsp mal ausprobiert, aber das, was im foreignObject stand, hat er nicht angezeigt.

                  Ich wuerde es mit einer Server-seitigen Sprache versuchen und SVG und HTML in getrennten Frames oder IFrames halten und dann bei Aenderungen [via JS, ggf. unter Nutzung der Methoden getURL() oder postURL()] komplett neuen SVG-Code dynamisch laden, was dann evtl. nicht mehr so schnell funktioniert wie eine einfache Mouseover-Aktion.

                  Wahrscheinlich ist das die beste Lösung, aber mit PHP oder so kenn ich mich nicht aus, daher wollt ich erstmal die Lösung mit foreign-Object versuchen - sonst muss ich mich mal in PHP einarbeiten ;-)))

                  Oder die Tabelle wird im SVG-Dokument mittels Rechtecken, Linien und Text manuell nachgebildet ...

                  Denke, das wäre etwas schwer, da ich ja auch die Verbindung von der Tabelle in die Graphik und von der Graphik in die Tabelle benötige.

                  Nochmal vielen lieben Dank.
                  Katharina

                  1. Hallo,

                    Kann es sein, dass der Adobe Viewer nicht foreignObject verwendet? Habe das Bsp mal ausprobiert, aber das, was im foreignObject stand, hat er nicht angezeigt.

                    Doch -- wie geschrieben -- der ASV 6.0 preview 1 kann es. Der Link "Ergebnis als Rastergrafik ..." zeigt alternativ die erhaltene Ausgabe.

                    MfG, Thomas

                    1. Hallo,

                      ich hoffe ich nerve nicht. Ich habe jetz extra den ASV6.0 runtergeladen, hatte bisher den ASV von der Adobe-Seite. Ich habe gerade auf einer anderen Website ein Bsp gefunden, das ich zusätzlich testen wollte:

                      <?xml version="1.0" standalone="yes"?>
                      <svg width="4in" height="3in"
                       xmlns = 'http://www.w3.org/2000/svg'>
                        <desc>This example uses the 'switch' element to provide a
                              fallback graphical representation of an paragraph, if
                              XMHTML is not supported.</desc>
                        <!-- The 'switch' element will process the first child element
                             whose testing attributes evaluate to true.-->
                        <switch>
                          <!-- Process the embedded XHTML if the requiredExtensions attribute
                               evaluates to true (i.e., the user agent supports XHTML
                               embedded within SVG). -->
                          <foreignObject width="100" height="50"
                                      requiredExtensions="http://example.com/SVGExtensions/EmbeddedXHTML">
                            <!-- XHTML content goes here -->
                            <html xmlns="http://www.w3.org/1999/xhtml">
                            <body>
                              <p>Here is a paragraph that requires word wrap</p>
                            </body>
                            </html>
                          </foreignObject>
                          <!-- Else, process the following alternate SVG.
                               Note that there are no testing attributes on the 'text' element.
                               If no testing attributes are provided, it is as if there
                               were testing attributes and they evaluated to true.-->
                          <text font-size="10" font-family="Verdana">
                            <tspan x="10" y="10">Teste dieses</tspan>
                            <tspan x="10" y="20">Beispiel!!!!</tspan>
                          </text>
                        </switch>
                      </svg>

                      Hier wird aber immer der Text "Teste dieses Beispiel"! ausgegeben. Dachte es sollte "here is a paragraph.." ausgegeben werden. Oder sehe ich das falsch???

                      VG Kathrin

                      1. Hallo,

                        Ich habe jetz extra den ASV6.0 runtergeladen, hatte bisher den ASV von der Adobe-Seite.

                        Naja, die Preview ist auch von adobe.com, oder?

                        Ich habe gerade auf einer anderen Website ein Bsp gefunden, das ich zusätzlich testen wollte:

                        Aha, das Beispiel aus der SVG-Spezifikation 1.x ...

                        Hier wird aber immer der Text "Teste dieses Beispiel"! ausgegeben. Dachte es sollte "here is a paragraph.." ausgegeben werden. Oder sehe ich das falsch???

                        Der ASV 6.0 kann es noch nicht 100pro so, wie das die Spec vorsieht. In meinem Beispiel fehlt das Wurzelelement html im eingebetteten Code. Mit dem Attribut requiredExtensions konnte ich auch kein Ergebnis erhalten. Man kann es drehen und wenden, diese Techniken sind noch nicht praxistauglich.

                        Ansonsten hatte ich ja den AFAIK einzig sinnvollen Ausweg (ueber den Server) bereits geschildert.

                        MfG, Thomas

                        1. Naja, die Preview ist auch von adobe.com, oder?

                          Ja aber auf der Adobe-Seite bekommt man als neueste Version3.0!

                          Der ASV 6.0 kann es noch nicht 100pro so, wie das die Spec vorsieht. In meinem Beispiel fehlt das Wurzelelement html im eingebetteten Code. Mit dem Attribut requiredExtensions konnte ich auch kein Ergebnis erhalten. Man kann es drehen und wenden, diese Techniken sind noch nicht praxistauglich.

                          Hm bei Ihrem Bsp habe ich das Problem, dass mir die Graphik fehlte, hab dann irgendeine *.gif genommen und wenn ich auf den Link klicke, wird nur das BIld angezeigt.

                          Ansonsten hatte ich ja den AFAIK einzig sinnvollen Ausweg (ueber den Server) bereits geschildert.

                          Muss ich mich wohl doch mit dem gedanken vertraut haben, PHP zu verwenden.
                          NOchmal danke
                          Katharina

                          1. Hallo,

                            Hm bei Ihrem Bsp habe ich das Problem, dass mir die Graphik fehlte, hab dann irgendeine *.gif genommen und wenn ich auf den Link klicke, wird nur das BIld angezeigt.

                            Es geht doch weniger um die Rastergrafik -- diese liegt auf dem Webserver und fehlt natuerlich beim lokalen Test des Beispielcodes bzw. ist im Downloadpaket von SVGLBC enthalten.

                            Der Grafiklink ist eben fuer Leute, die keinen ASV 6.0 haben und somit den HTML+CSS-Inhalt von foreignObject nicht sehen koennen ...

                            MfG, Thomas

                            1. Klar geht es weniger um die Rastergrafik. Habe dann damit er keinen Fehler zeigt, eben irgendein gif verwendet. BEi mir wird aber nur Element foreignObject (ASV 6.0) als ÜBerschrift H2 angezeigt, dann untendrunter in eckigen Klammern "sonst bleibt das Rechteck leer" und daneben als Link "Ergebnis als Rastergrafik",d.h. dass es nicht funktioniert oder seh ich das falsch??? Ich kann eben den foreign-Object-Inhalt nicht sehen. D.h. ich sollte auf jeden Fall diesen Weg lassen, oder?
                              Vielen dank im voraus.
                              VG Katharina

                              1. Hallo,

                                BEi mir wird aber nur Element foreignObject (ASV 6.0) als ÜBerschrift H2 angezeigt, dann untendrunter in eckigen Klammern "sonst bleibt das Rechteck leer" und daneben als Link "Ergebnis als Rastergrafik",d.h. dass es nicht funktioniert oder seh ich das falsch???

                                Ist da wirklich der 6.0er im Spiel, also das Kontextmenue ist englisch und bei "About Adobe SVG Viewer..." kommt das "Pre-Release"-Fenster?

                                Ich kann eben den foreign-Object-Inhalt nicht sehen. D.h. ich sollte auf jeden Fall diesen Weg lassen, oder?

                                Ja, da die meisten Leute (wenn ueberhaupt!) eine ASV-Version 3.0/3.01 haben. In einem Intranet (oder bei den paar mir bekannten SVG-Usern ;-) mag es anders aussehen.

                                MfG, Thomas

                                1. Hi,

                                  habe jetz nochmal den Mozilla1.7 und SVG6.0 neu installiert, jetz seh ich auch das was im TAg <foreignObject> angegeben ist. Habe jetz versucht, eine Tabelle auszugeben. Wird leider nicht angezeigt ;-( p-Elemente zeigt er schon an. Somit ist es wohl für mich nicht möglich, diesen Weg zu benutzen und sollte doch PHP benutzen.

                                  Ja, da die meisten Leute (wenn ueberhaupt!) eine ASV-Version 3.0/3.01 haben. In einem Intranet (oder bei den paar mir bekannten SVG-Usern ;-) mag es anders aussehen.

                                  Das Problem wäre nicht, dass die User den 6.0 nicht hätten. Wenn es irgendwie doch über foreign-Object ginge, wäre es natürlich optimal. Weiß auch nicht, scheue noch ein bisschen den Weg über PHP.
                                  Lg Katharina

          2. Hi,

            <embed id ="figure" width="540" height="540" type="image/svg+xml" pluginspage="http://www.adobe.com/svg/viewer/install/" src="figure.svg"</embed>

            Vielleicht solltest Du das öffnende tag auch schließen?

            cu,
            Andreas

            --
            MudGuard? Siehe http://www.Mud-Guard.de/
            Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      2. Tach,

        hör besser auf mit programmieren, das kann sich ja keiner angucken ohne Schmerzen zu bekommen!

        Gruß
        Klaus

        PS: Da haben wir es wieder, Frauen und Informatik, das passt einfach nicht

        1. Hallo Klaus,

          PS: Da haben wir es wieder, Frauen und Informatik, das passt einfach nicht

          Solche idiotischen Kommentare sind in diesem Forum unerwuenscht. Und die Aussage sagt mehr ueber dich aus als ueber das, was in ihr enthalten ist.

          viele Gruesse
            Stefan Muenz

          1. Hallo Stefan,

            was sagt sie denn aus?

            MFG
            Klaus

            1. Moin,

              Du behauptest eine Verbindung zwischen Frauen und Informatik ("Da haben wir es wieder, Frauen und Informatik, das passt einfach nicht"). Genau genommen ist das keine Aussage oder eine These oder ein Naturgesetz sondern ein Vorurteil. Vor-Urteile sind soziale Urteile, die gegen übliche, allgemein anerkannte menschliche Wertvorstellungen oder Normen verstoßen (Rationaliät, Gerechtigkeit, Mitmenschlichkeit).
              Es ist unerheblich, was dein Vorurteil über Dich ausssagt. Für Dich ist allein entscheident zu akzeptieren, dass dieses Verhalten hier nicht erwünscht ist.

              EOT

              Swen

              1. Das hab ich vestanden und möchte auch keine Diskussion über Vorurteile RICHTIG -- FALSCH beginnen.

                By
                Klaus

                1. Hi Klaus,

                  und möchte auch keine Diskussion über Vorurteile RICHTIG -- FALSCH beginnen.

                  Hehe, Dein Glück, sonst hätte ich noch ein paar kleine Vorurteile über Klaus und die Frauen gehabt....

                  Viele Grüße
                  Mathias Bigge

                  1. Hi Mathias,

                    na da fang mal an mit deinen Fragen, wenn es so wichtig ist ;-)

                    Grüße
                    Klaus

          2. Hallo Stefan,

            Solche idiotischen Kommentare sind in diesem Forum unerwuenscht. Und die Aussage sagt mehr ueber dich aus als ueber das, was in ihr enthalten ist.

            ach, lass doch, das ist normal, ich habe es auch lernen müssen, wir Frauen sind einfach zu doof, rückwärts einzuparken, Stadtpläne zu lesen oder Schach zu spielen; dazu gehört selbstverständlich auch die Informatik. Dafür können die Männer nicht zuhören, mehrere Sachen gleichzeitig machen oder nach dem Weg fragen. Warum das so ist? Alles Relikte aus der Steinzeit, alles wissenschaftlich belegt, die Gehirne von Männern und Frauen ticken einfach unterschiedlich. U.a. nachzulesen in solchen revolutionären Werken wie http://www.amazon.de/exec/obidos/ASIN/3548359698/qid=1089133278/sr=2-1/ref=sr_2_0_1/028-7250661-7362144.

            Wahrscheinlich hat dieser Klaus hier das Buch gelesen und als Bibel begriffen.

            Viele Grüße,

            Kirsten

            1. Hallo Kirsten,

              eine Frau mit Humor :-)
              Nein, ich hab das Buch nicht gelesen. Bin eigentlich ein Mensch frei von Vorurteilen, das war auch mehr lustig anzusehen. Doch manch einer in diesem Forum  ist ernster als Ernst ;-)

              MFG
              Klaus

      3. Hallo,

        Habe gesehen das Problem liegt viel weiter oben. Will da nämlich eine svg-Datei mit einbauen. Und versuche mit:

        var svgdoc = document.figure.getSVGDocument();

        das Svg-Objekt zu bekommen, um darauf zu zugreifen, aber er gibt immer undefined zurück ;-((

        Die genannte Kommunikation zwischen HTML-Dokument und SVG-Dokument ist bei eingebetteten Objekten nur im IE moeglich. Ich gehe mal davon aus, dass der ASV zum Einsatz kommt.

        MfG, Thomas

  2. Hallo Katharina,

    ZBsp steht in der XML-Datei
    //Braucht man für IE5 DHTML DOM
    var DHTMLobj = document.all.item(obj_name);
    if (DHTMLobj != null) {
      DHTMLobj.style.backgroundcolor = "yellow";
    }
    Das muss man bestimmt ändern oder? Nur wie?

    Eine sinnvolle Lektuere innerhalb von SELFHTML dazu sind die DHTML-Modelle:
    http://de.selfhtml.org/dhtml/modelle/
    Ein Beispiel, wie sich cross-Browser-Programmierung realisieren laesst, stellt die DHTML-Bibliothek dar:
    http://de.selfhtml.org/dhtml/beispiele/dhtml_bibliothek.htm

    viele Gruesse
      Stefan Muenz