reload svg mit urlparameter durch javascript möglich?
Maik Ammüller
- xml-derivat
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
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
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
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
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
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
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
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
okay.. danke thomas bis dahin.
probiere es mal..
maik