Ich habe eine HTML-Seite, die in C# -Projekt generiert. es funktioniert, wenn ich diese Seite in IE öffne.Windows.Forms.WebBrowser Laden von Seite mit lokaler SVG-Datei
<!DOCTYPE HTML>
<meta http-equiv='X-UA-Compatible' content='IE=10' />
<html lang='en'>
<head>
<title>TemplateSVG</title>
<script type='text/javascript' src='InterfaceSVG.js'></script>
</head>
<body style='margin: 0; overflow: hidden;'>
<div class="page-content">
<object id='idSVG' type='image/svg+xml' data='D:\Examples\ExampleFla.svg'></object>
</div>
</body>
</html>
geladen ich in Web-Browser bekommen Text
if (webBrowser.Document == null)
{
webBrowser.DocumentText = theHTMLtext;
}
else
{
webBrowser.Document.OpenNew(true);
webBrowser.DocumentText = theHTMLtext;
}
Aber InterfaceSVG.js nicht finden Datei.
Wenn ich den vollständigen Pfad zu js-Datei geben src='D:\[Path]\InterfaceSVG.js'
JS-Skript generieren Ausnahme online mit getSVGDocument()
.
var SvgDoc;
window.addEventListener('load', function() {
SvgDoc = document.getElementById("idSVG");
if (SvgDoc == null) { alert("error"); return; }
SvgDoc = SvgDoc.getSVGDocument(); // IE created Access Deny.
});
bearbeiten: Versuchen Sie Text aus js Datei einzufügen.
<script>Text from InterfaceSVG.js </scipt>
Aber es erzeugt die gleiche Ausnahme (Zugriff verweigert) auf Linie mit getSVGDocument()
I Ergebnis HTML-Seite in einem Ordner mit SVG-Datei und verwenden Sie die Funktion Navigate
statt DocumentText
gespeichert. Jetzt funktioniert es ... aber ich möchte nichts auf Festplatte schreiben.
string path = Path.GetDirectoryName(pathToSvgFile);
string file = "\\"+Path.GetFileNameWithoutExtension(pathToSvgFile);
string newfile = path + file;
File.WriteAllText(newfile, theHTMLtext);
webBrowser.Navigate(newfile);