So speichern Sie eine Webseite lokal einschließlich Bilder,etc
Baue ich ein add-on für eine Anwendung. Die Kunden bezahlen, um einige Webseiten und laden Sie einige Dateien aus es. Sie automatisieren möchten, dieser Download-Prozess, indem Sie add-on. Also anstelle von "Seite Speichern unter" und warten für den download Fertigstellung, können Sie auf die add-on und vergessen den Vorgang. Das problem ist, die Webseite bietet einige cookies an den browser. Also der beste Weg ist, die Datei-> "Seite Speichern unter" . Ich will es tun, durch das add-on. Gibt es irgendeine firefox-javascript-Weg für diese?. Ich verwendet nsiDownloader. Aber es speichert nur html, keine Bilder,etc. Kann jemand mich führen, in dieser Ausgabe?
EDIT:
Hallo, Dies ist der code, das Tat den trick, Dank sai prasad
var dir =Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
dir.initWithPath("C:\\filename");
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("C:\\filename.html");
var wbp = Components.classes['@mozilla.org/embedding/browser/nsWebBrowserPersist;1']
.createInstance(Components.interfaces.nsIWebBrowserPersist);
alert("going to save");
wbp.saveDocument(content.document, file,dir, null, null, null);
alert("saved");
EDIT:
Aber, noch einige Webseiten werden nicht gespeichert, genau wie "Seite Speichern unter". Die gespeicherten Seiten werden nicht gerendert, wie die original-Seiten, Sie werden sehen, wie einige html-Beispiel.
- Ich bin nicht wirklich 100%, aber werfen Sie einen Blick auf CURL
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie erwähnen, dass Datei->"Seite Speichern unter" funktioniert wie erwartet, versuchte ich einen Blick durch den source-code (chrome://browser/content/browser.xul) und fand diese:
https://developer.mozilla.org/en/nsIWebBrowserPersist#saveDocument()
Stellen Sie sicher, dass Sie rufen Sie diese Funktion nur, nachdem die Webseite vollständig geladen wurde (nicht DOMContentLoaded)!!