2011-01-05 6 views
3

Ein einfacher WebKitBrowser1.Navigate (localfilehere) funktioniert aus irgendeinem Grund nicht.Öffnen lokaler Dateien in Webkit .NET

Ich habe versucht, "file: //" zur URL hinzuzufügen, aber das hat auch nicht funktioniert.

Das scheint lächerlich, aber ist diese Funktionalität wirklich nicht vorhanden?

Antwort

0

In Google Chrome können Sie eine lokale Datei öffnen, indem Sie file: /// gefolgt vom vollständigen Pfad der Datei eingeben, damit Sie denselben Operator für Webkit verwenden können.

+0

Ja Ich habe versucht, das so gut, weigert sich die Kontrolle noch etwas zu laden ... – Shawn

+0

Ändern sich Sie alle die zurück Schrägstriche in Der Dateiname, der ebenfalls durchgestrichen werden soll? file: /// C: /Folder/SubFolder/Test.html –

+0

Ich habe das gleiche Problem, ich ändere Schrägstriche. Ich bin in der Lage, webkitBrowser.Navigate zu verwenden, um eine HTML-Datei anzuzeigen, aber dann kann ich kein JavaScript laden, das von diesem HTML referenziert wird. So kann ich zB keine jquery aufnehmen. –

3

"file: //" ist das korrekte Protokoll. Um auf eine Datei zu erhalten sagen ... "c: \ temp \ test.html" können Sie versuchen, so etwas wie:

"file: //c/temp/test.html"

Notiere die vorwärts Schrägstrich und das Fehlen des Doppelpunkts nach dem Laufwerksbuchstaben.

1

Ich habe eine Lösung für Ihr Problem gefunden:

1.) Stellen Sie sicher, dass der Pfad mit beginnt "file: ///"
2.) Stellen Sie sicher, dass Sie vollständigen Pfad der Datei 3
verwenden.) Stellen Sie sicher alle Schrägstriche, um vorwärts geändert werden schlitzt
4.) Stellen Sie sicher, dass Sie alle Leerzeichen ersetzen „“ mit „% 20“
5.) Stellen Sie sicher, dass die Datei endet in „.html“

So , eine Datei hier:
"C: \ Programme \ test.h tml“
würde zu werden braucht:
"file: /// C: /Program%20Files/test.html"

Hoffnung, das hilft.

1

Erstellen Sie eine Beispiel-HTML-Seite. In meine Ressourcen hochladen.

Mit diesem Code: WebKitBrowser1.document.write (my.resources.page.html)

5

Sein aussehen wie Sie falschen url setzen. Sie können es durch

Uri.IsWellFormedUriString 

Einer der Gründe - Sie setzen die Zeichenfolge mit nationalen Symbolen.

In diesem Fall lösen die Antworten vor Ihnen nicht Problem, weil Sie auch URL kodieren sollten.

können Sie System.Web.HttpUtility.UrlEncode dafür verwenden und wenden Sie dann eine Lösung , bevor sie von X Enterprises beschrieben (aber Sie sollten keine Leerzeichen ersetzen - es wäre bereits durch die Codierung durchgeführt werden).

Aber der einfachste Weg, korrekte URL zu erhalten, ist

string url = new Uri(pathToFile, UriKind.Absolute).AbsoluteUri; 
1

Angenommen index.html im Verzeichnis bin/debug ist dann

Use "file: ///" + Environment.CurrentDirectory.Replace (@ "\", @ "/") + "/ index.html"

Angenommen Index.html ist in bin/debug und erstellt Ordner wie www dann

Verwenden Sie "file: ///" + Environment.CurrentDirectory.Replace (@ "\", @ "/") + "/www/index.html"

2

WebKit.Net 0.5 Navigate() Funktion nimmt String als Parameter (lokale/Web-Dateien). Für die lokale Datei für zB: c:\xxx\yyy zzz.htm geführt werden kann Funktion Navigieren Sie wie folgt vor: -

dim sFile As String = "c:\xxx\yyy zzz.htm" 
Dim url as new Uri(sFile, UriKind.Absolute) 

'Now pass the file's required formatted absolute path 
WebKitBrowser1.Navigate(url.AbsoluteUri)