PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Script laden je nach window-Parameter



BlueJay
07-06-2011, 22:15
Hallo Leute,

da soll je nach Window-Parameter ein anderes Javascript geladen werden.
Bisher habe ich das mit brachialer Gewalt gemacht:



<script type="text/javascript" src="../_winparam.js"></script>
<script type="text/javascript">
// je nach vom window-Parameter vorgegebenen Steinset einen SVG-Scriptblock laden:
// ------------------------------------------------------------------------------------------
var sset=get_winparam('sset');
sset=parseInt(sset);
if (isNaN(sset)) sset=0;

var t,nbasis;
switch(sset)
{ case 1: nbasis=4; t='<script type="text/javascript" src="svggranat.js"><\/script>'; break;
default: nbasis=6; t='<script type="text/javascript" src="svgpix.js"><\/script>';
}
document.writeln(t);
// ------------------------------------------------------------------------------------------
</script>


<script type="text/javascript">
// 1. spielbare Version: 5/11, Variante mit 2 Tilesets: 6/11
// ----------------------------------------------------------------------------------------------------------------------
var fac=get_winparam('size'); fac=parseFloat(fac); if (isNaN(fac)) fac=0.5;
var lev=get_winparam('lev'); lev=parseInt(lev); if (isNaN(lev)) lev=0;
...


(SVG-MahJongg, nur IE9/FF4) (http://www.gamecraft.de/svg_mahjongg/index.htm)

Laufen tut es, aber gibt es da eine elegantere Möglichkeit?

Gruß,
Ulrike

undefined
08-06-2011, 05:37
Dein Script funktioniert aber nur bei einem onLoad und ist abhängig von der Webserver Speicher Verwaltung Cache-Control.
Das einzige was mir hier einfällt wäre json/ajax.

PS: Bei Webkit funktioniert dein Script leider wegen nicht geschlossener Element nicht.


6index.htm:380XML self-closing tag syntax used on <stop>. The tag will not be closed.
2index.htm:381XML self-closing tag syntax used on <stop>. The tag will not be closed.
4index.htm:382XML self-closing tag syntax used on <rect>. The tag will not be closed.
4index.htm:382XML self-closing tag syntax used on <polygon>. The tag will not be closed.
index.htm:382XML self-closing tag syntax used on <path>. The tag will not be closed.
index.htm:383XML self-closing tag syntax used on <use>. The tag will not be closed.
2index.htm:383XML self-closing tag syntax used on <polygon>. The tag will not be closed.
6index.htm:385XML self-closing tag syntax used on <stop>. The tag will not be closed.
2index.htm:386XML self-closing tag syntax used on <stop>. The tag will not be closed.
4index.htm:387XML self-closing tag syntax used on <rect>. The tag will not be closed.
........

BlueJay
08-06-2011, 09:04
Hi,

Das mit dem nicht geschlossenen Tag war mein Verdacht, ich dachte aber eher an das Script-Tag.

Und serverseitig wollte ich gerade nichts dazustricken. Das wäre der letzte Ausweg gewesen.

Wenn Webkit das Closing Tag nicht auswerten kann, müssen die an ihrer SVG-Implementation noch was ändern, möglicherweise am XML-Parser. Ich denke mal, dass Opera über die gleiche Ecke stolpert. (Den könnte ich gleich mal mit der "Langform" testen, obwohl W3C bei XML von sowas abrät...)

http://www.w3.org/TR/2003/REC-SVG11-20030114/shapes.html
(Beispiele)

Ansonsten kannst Du mal hier prüfen, ob's an der nicht ganz koscheren Verschachtelung der Javascripte liegt:
http://www.gamecraft.de/svg_mahjongg/index_org.htm

Gruß,
Ulrike

BlueJay
08-06-2011, 10:27
hier die Ergebnisse des Versuches, Opera11 die "Langform" anzubieten.
http://www.mrunix.de/forums/showthread.php?p=331672&posted=1#post331672

undefined
09-06-2011, 07:07
Das gleiche Problem. Ich vermute mal das WebKit hier hingeht und die gemischten Dokumenten Datenköpfe als HTML verarbeitet. Ich hatte wegen einer anderen Geschichte schon Diskussion mit den WebKit Entwicklern was XHTML betrifft. Die Render Engine von Webkit arbeitet mit html und nicht xhtml. Die schnippeln intern alle close tags ab.
Die Beispiele in deinem W3C Link werden alle Sauber angezeigt.

https://bugs.webkit.org/show_bug.cgi?id=23113

BlueJay
09-06-2011, 10:24
Äh, sollten wir nicht unter HTML5 und SVG weiterdiskutieren?


Jo, angezeigt werden sie, aber nur, wenn das SVG das einzige Element der Seite ist.

Bei diesem Link ging es mir primär um die XML-Syntax, auf der die Grafiken basieren.

Der Bug, den Du zitierst, bezieht sich auf ein SVG, was HTML beinhaltet.
Ich arbeite mit HTML5 und packe da ein SVG rein, also genau umgekehrt.
Es ist das Szenario, was dieser Tabelle entspricht.
http://caniuse.com/svg-html5
(Boah, ey, der Chrome ist ja sauschnell!)

Was der Browser also theoretisch müsste:
Aha, hier kommt ein HTML-Element: normal parsen, bis ein "nächster Header" kommt. Den mit dem neuen Typ (XML) weiterparsen, bis dessen End-Tag kommt, dann weiter mit der alten Geschichte, also irgendwie eine Art inline-frame daraus machen.

IE scheint das so zu machen: im xml-Teil stört ihn jeder kleine Furz, sonst gibt er sich eher großzügig, verhaut dann aber schonmal das Layout.

Dahingegen versucht FF4, vergessene Klammern oder Anführungszeichen in SVG zu ersetzen. Nicht gerade hilfreich bei der Fehlersuche!

Gruß,
Ulrike

undefined
10-06-2011, 10:24
Ich habe mal eine Testpage gemacht und WebKit2/KDE4 Konqueror können im Moment nur canvas FF4 beides. Opera habe ich im Moment nicht Installiert.
http://xhtmldbg.hjcms.de/plugintests/inline_svg_html5.html

BlueJay
11-06-2011, 07:02
... Opera 11.11 kann auch nur den Canvas-Kreis

BlueJay
22-06-2011, 17:46
Ja, die Conditional Comments sehen auf den ersten Blick gut aus, aber leider können sie wohl keine Parameter aus Querystrings abfragen, sondern nur Browserversionen. Ausserdem vermisse ich elseif und else, denn die ganzen möglichen Werte verneinen für die Default-Einstelllung ist auch Krampf.

Gruß,
Ulrike