91.
Adobe SVG Viewer und Mozilla 1.0 (16.06.2002)
Bis zur Preview-Version Mozilla 0.9.9 war es problemlos möglich, SVG-Dokumente mittels object-Element HTML 4-konform einzubinden und über das SVG-PlugIn anzuzeigen. Ab Release Candidate 1 (RC1) und auch in der finalen Version 1.0 stürzt Mozilla dabei reproduzierbar ab:
MOZILLA verursachte einen Fehler durch eine ungültige Seite in Modul NECKO.DLL bei 0167:60955c38.
Die offizielle Aussage vom Mozilla-Team ist die, dass Adobe den Viewer über ein noch unfertiges ("unfrozen") API anspricht, welches nach Version 0.9.9 geändert wurde.
Der Versuch, SVG-Dokumente nicht über
<object data="..." width="..." height="..." type="image/svg+xml">
sondern mittels
<iframe src="..." width="..." height="...">
einzubinden, scheint erstaunlicherweise mit Mozilla 1.0 sowie auch mit Vorabversionen < 1.0 und Netscape 6.x sowie im Internet Explorer zu funktionieren.
Das lässt sich vor allem bei der Server-seitigen Generierung von SVG-Dokumenten ausnutzen, z. B. durch diese PHP-Abfrage:
$ua=$HTTP_SERVER_VARS["HTTP_USER_AGENT"];
if(strstr($ua,"Gecko") && !strstr($ua,"rv:0."))
{
// Ausgabe von HTML-Code für iframe
print "<iframe src=\"datei.svg\" ...>...</iframe>\n";
}
else
{
// Ausgabe von HTML-Code für object
print "<object data=\"datei.svg\" ...>...</object>\n";
}
Client-seitig ist auch eine auf JavaScript basierende Abfrage denkbar:
var ua=navigator.userAgent;
if(ua.indexOf("Gecko")!=-1 && ua.indexOf("rv:0.")==-1)
{
// Ausgabe von HTML-Code für iframe
document.write("<iframe src=\"datei.svg\" ...>...<\/iframe>");
}
else
{
// Ausgabe von HTML-Code für object
document.write("<object data=\"datei.svg\" ...>...<\/object>");
}
Somit erhalten auf der Gecko-Rendering-Engine basierende Browser, die keine 0.x-Kennung liefern (Mozilla, Galeon, Netscape 7.x, ...), die iframe-Version und andere Browser (IE, Netscape 6.x, Opera) die bewährte object-Zuweisung. Die hier nochmals als Beispiel 91 angegebene Server-seitige Anwendung MSpec::SVG bringt zumindest Mozilla 1.0 unter Windows 98 und 2000 beim Aufruf des Adobe SVG-PlugIns nicht mehr zum Absturz. Letztlich ist natürlich Adobe gefordert, ein verbessertes PlugIn anzubieten, welches derartige Workarounds nicht mehr erfordert.
|