spekulatius: Problem mit IE9 beim Einbinden von SVG-Files auf Netzlaufwerken

Hallo miteinander,

ich möchte ein svg-File einbinden, welches sich auf einem Netzlaufwerk unseres Fileservers befindet (Laufwerk m:). Mit älteren Versionen des IE's funktioniert das auch, allerdings weigert sich der IE9. Ich erhalte mehrere Skript-Fehler (SCRIPT5: Zugriff verweigert), z.B. bei:
var object = document.plan.getSVGDocument();
document.getElementById("plan").getSVGDocument() wirft den selben Fehler

Ich vermute, dass dies eine Sicherheitsfrage bezüglich des cross-domain-scriptings ist, allerdings befinden wir uns ja hier in unserem lokalen Intranet. Also wo ist das Häkchen im IE, welches ich setzen muss?

Danke vorab für Eure Beteiligung!

Code-Snippet:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
          "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
        <meta http-equiv="X-UA-Compatible" content="IE=9" >
<title>Plan Viewer</title>
<link rel="stylesheet" type="text/css" href="CutOS_H_Styles.css"></link>
<script type="text/javascript" src="CutOS_H_Scripte.js"></script>
</head>
<body onload=init();>
<form action="get">
<fieldset>
<table border="0" width="100%">
...
</table>
</fieldset>
</form>
        <div id="huelle">
<object type="image/svg+xml" style="vertical-align:top" height="68%" width="100%" data="m:\000002_1_P0001.svg" name="plan" id="plan"></object>
    </div>
<br>
<form name="Interaktiv" action="get">
<fieldset id="FIELDSET1">
<legend>Optionen f&uuml;r Interaktivit&auml;t</legend>
<table border="0" width="100%">
<tr>
...
</tr>
</table>
</fieldset>
</form>
</body>
</html>

  1. Ich vermute, dass dies eine Sicherheitsfrage bezüglich des cross-domain-scriptings ist, allerdings befinden wir uns ja hier in unserem lokalen Intranet. Also wo ist das Häkchen im IE, welches ich setzen muss?

    Ich gehe eher davon aus, dass irgendwas mit der Referenzierung nicht passt.

    Lokale Ressourcen (ja, das Netzlaufwerk ist in diesem Kontext lokal) - werden mit dem file-Schema eingebunden. file://M:\ bzw. file://M:/ sollte das dann sein.

    1. Ich vermute, dass dies eine Sicherheitsfrage bezüglich des cross-domain-scriptings ist, allerdings befinden wir uns ja hier in unserem lokalen Intranet. Also wo ist das Häkchen im IE, welches ich setzen muss?

      Ich gehe eher davon aus, dass irgendwas mit der Referenzierung nicht passt.

      Lokale Ressourcen (ja, das Netzlaufwerk ist in diesem Kontext lokal) - werden mit dem file-Schema eingebunden. file://M:\ bzw. file://M:/ sollte das dann sein.

      Hab ich gerade mal getestet, leider ohne Erfolg.
      Auch folgende Schreibweisen bringen keinen Erfolg: \Servername\FreigabeOrdner\xxx.svg oder file:\Servername\FreigabeOrdner\xxx.svg
      Laufwerk M ist übrigens auf einen Freigabeordner gemappt.

  2. Hallo Holger,

    ich möchte ein svg-File einbinden, welches sich auf einem Netzlaufwerk unseres Fileservers befindet (Laufwerk m:). Mit älteren Versionen des IE's funktioniert das auch, allerdings weigert sich der IE9. Ich erhalte mehrere Skript-Fehler (SCRIPT5: Zugriff verweigert), z.B. bei:
    var object = document.plan.getSVGDocument();
    document.getElementById("plan").getSVGDocument() wirft den selben Fehler

    Ich vermute, dass dies eine Sicherheitsfrage bezüglich des cross-domain-scriptings ist, allerdings befinden wir uns ja hier in unserem lokalen Intranet. Also wo ist das Häkchen im IE, welches ich setzen muss?

    Kann ich leider nicht sagen (*), aber die Beobachtung bestätigen. Das folgende Beispiel funktioniert unter Vista erstaunlicherweise mit Opera 11.10 sowohl lokal als auch bei Netzwerkverknüpfung, im IE 9 und im FF 4.0.1 jedoch nur lokal (Ausgabe red):

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">  
      <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
        <title>Test</title>  
      </head>  
      <body onload="alert(document.getElementById('plan').getSVGDocument().getElementById('kreis').getAttribute('fill'))">  
        <div id="svgcontainer">  
          <object type="image/svg+xml" data="file:///X:/svgtest/test.svg" width="200" height="200" id="plan"></object>  
        </div>  
      </body>  
    </html>
    

    test.svg:

    <?xml version="1.0" encoding="UTF-8"?>  
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">  
    <svg xmlns="http://www.w3.org/2000/svg">  
      <circle id="kreis" cx="100" cy="100" r="30" fill="red"/>  
    </svg>
    

    BTW: Bei den getesteten Browsern funktioniert statt getSVGDocument() auch contentDocument.

    (*) Meine Idee, dem Netzwerk-Verzeichnis und allen Dateien darin den Vollzugriff für den Benutzer NETZWERK zuzuweisen, hat nichts gebracht. Seltsam ist ja, dass Opera der Zugriff gelingt.

    Grüße,
    Thomas