Maik Ammüller: reload svg mit urlparameter durch javascript möglich?

hallo,

ich habe vor eine svg-datei, die mit

<embed name="bild" src="12345.asp" type="image/svg+xml" width="100%" height="99%">

in einem frameset eingebettet ist, url-encoded parameter durch aktionen (javascript) in 12345.asp zu übergeben. 12345.asp ist dabei die svg-datei.

in 12345.asp wird dazu ein event-handler angesoßen der die url:
     top.window.frames.item("mainFrame").document.bild.src = '12345.asp?B=' + Math.abs(var1) + '&H=' + Math.abs(var2);

setzt.

wie kann ich es jetzt erreichen, daß die seite neu geladen wird und die variablen auswertet?

naiverweise dachte ich an:
top.window.frames.item("mainFrame").refresh; oder
top.window.frames.item("mainFrame").document.bild.reload();

aber hier werden überall meine url-parameter nicht serverseitig ausgewertet.

habe ich einen denkfehler?

hintergrund: die inhaltsdichte einer svg-datei soll durch die dynamische generierung geändert werden. (event: Zoom-out).

hoffe jemand kann mir helfen, da ich nunmehr eine woche mein bestes tue...

Maik

  1. Hallo,

    in 12345.asp wird dazu ein event-handler angesoßen der die url:
         top.window.frames.item("mainFrame").document.bild.src = '12345.asp?B=' + Math.abs(var1) + '&H=' + Math.abs(var2);

    Wenn das Script im SVG-Kontext laeuft, ist der direkte Zugriff aus dem SVG-Dokument heraus naheliegend:

    window.setSrc = '12345.asp?B=' + Math.abs(var1) + '&H=' + Math.abs(var2);

    window ist das window-Objekt des SVG Viewers, siehe: http://www.datenverdrahten.de/svglbc/?code=get_setSrc.

    MfG, Thomas

    --
    SVG - Learning By Coding
    http://svglbc.datenverdrahten.de/
    1. mhh...

      funktioniert auch nicht, die url-variablen werden nicht serverseitig ausgewertet... mache ich was falsch? hier nochmal die struktur:

      frameset
      |
      +--head.asp
      +--left.asp
      +--right.asp
      +--down.asp
      +--main.asp (src="<embed name="12345" src="12345.asp" type="image/svg+xml" width="100%" height="99%">)
          |
          +12345.asp (dynamisch-zu generierendes SVG-File)

      ich ein anschließendes reload funktioneirt nicht. oder muß ich die src=12345.asp kurzfristig durch ein dummy ersetzen und dann wieder die src=12345.asp setzen?

      danke,

      maik

      1. Hallo,

        funktioniert auch nicht, die url-variablen werden nicht serverseitig ausgewertet... mache ich was falsch? hier nochmal die struktur:

        Das bringt zumindest mich beim Verstehen des Problems nicht wirklich weiter. Wichtiger waeren der konkrete Code (am besten mal online stellen), Angabe des Browsers/OS und des verwendeten SVG-Viewers und wo/wie die Parameter ermittelt bzw. uebergeben werden sollen.

        parent.frames["framename"].document.embeds["embedname"].window.setSrc="..." ist beim Einsatz von IE/ASV ebenfalls verwendbar.

        Vielleicht hilft auch die Verwendung von iframe statt embed, dann waere parent.frames["framename"].location.href="..." einen Versuch wert und nicht auf den IE beschraenkt ...

        MfG, Thomas

        --
        SVG - Learning By Coding
        http://svglbc.datenverdrahten.de/
        1. hallo thomas,

          danke für das annehmen meines problems:

          http://www.8ung.at/carto/problem/index.html oder
          http://www.8ung.at/carto/problem/bla.zip

          habe es bei einem freund von mir gehostet. leider unterstützt der provider kein asp, aus diesem grund ein eher theoretischer frame. aber du wirst des sicher verstehen:

          die function setURLCODE() {

          soll bei jedem resize des svg-windows ein erweutes serverseitiges generieren der elemente in der svg-datei bewirken. d.h. bei einem risize sollen die url-parameter auswgewertet werden und dann eine neue svg-grafik erzeugen. leider funktionierte es nicht so richtig, da url zwar richtig erzeugt, aber nicht serverseitig ausgewertet wird.

          danke dir nochmals,

          maik

          1. Hallo,

            soll bei jedem resize des svg-windows ein erweutes serverseitiges generieren der elemente in der svg-datei bewirken. d.h. bei einem risize sollen die url-parameter auswgewertet werden und dann eine neue svg-grafik erzeugen. leider funktionierte es nicht so richtig, da url zwar richtig erzeugt, aber nicht serverseitig ausgewertet wird.

            Die auskommentierte Zeile in functions.js:

            window.setSrc='theMap.aspx?B=' + ...

            sollte schon auf das konkrete Objekt angewendet werden, offenbar:

            top.window.frames.item("mainFrame").document.karte.window.setSrc='...'

            Eine andere Variante ist die Verwendung von hidden-Formularfeldern, die beim Resizen an den Server geschickt werden (so habe ich es bei meiner Massenspektrenanwendung geloest).

            BTW: Warum ist in functions.js an drei Stellen bei den Referenzen zu Code von mir nur noch "nike" vom Nachnamen uebrig (Zeilen: 73, 470, 1157)?

            MfG, Thomas

            --
            SVG - Learning By Coding
            http://svglbc.datenverdrahten.de/
            1. Hallo,

              Die auskommentierte Zeile in functions.js:

              window.setSrc='theMap.aspx?B=' + ...

              sollte schon auf das konkrete Objekt angewendet werden, offenbar:

              top.window.frames.item("mainFrame").document.karte.window.setSrc='...'

              wenn ich
              top.window.frames.item("mainFrame").document.karte.window.setSrc = 'theMap.aspx?B=' + Math.abs(ovBreite) + '&H=' + Math.abs(ovHoehe) + '&ulx=' + Math.abs(ulx) + '&uly=' + Math.abs(uly) + '&lrx=' + Math.abs(lrx) + '&lry=' + Math.abs(lry) + '&CurrTx=' + CurrTx + '&CurrTy=' + CurrTx + '&CurrScale=' + CurrScale + '&theLayerNumber=12'

              definiere funktioniert dies auch nicht... ?? ratlos...

              Eine andere Variante ist die Verwendung von hidden-Formularfeldern, die beim Resizen an den Server geschickt werden (so habe ich es bei meiner Massenspektrenanwendung geloest).

              ???verstehe ich nicht... kannst du mir das erklären?

              BTW: Warum ist in functions.js an drei Stellen bei den Referenzen zu Code von mir nur noch "nike" vom Nachnamen uebrig (Zeilen: 73, 470, 1157)?

              das kommt wahrscheinlich von diversen ersuchen und ersetzen. ist keine böse absicht. nike ist wahrscheinlich der rest von meinike.

              danke
              maik

              1. Hallo,

                wenn ich
                top.window.frames.item("mainFrame").document.karte.window.setSrc = ...
                definiere funktioniert dies auch nicht... ?? ratlos...

                Probiere es alternativ mit der iframe-Einbindung.

                Eine andere Variante ist die Verwendung von hidden-Formularfeldern, die beim Resizen an den Server geschickt werden (so habe ich es bei meiner Massenspektrenanwendung geloest).

                ???verstehe ich nicht... kannst du mir das erklären?

                Siehe http://www.et.fh-merseburg.de/person/meinike/mspecsvg/, wobei das eigentlich eine Intranet-Anwendung ist.

                Den Code gibt es hier: http://www.xmlmagazin.de/itr/ausgaben/psfile/datei/29/Meinike_Te3d69ea548f17a.zip

                Beim Laden werden die Angaben von Hoehe und Breite des SVG-Container-Frames ausgelesen und mittels window.onresize=SVGReload; erfolgt das Neuladen.

                MfG, Thomas

                --
                SVG - Learning By Coding
                http://svglbc.datenverdrahten.de/
                1. okay.. danke thomas bis dahin.

                  probiere es mal..

                  maik