2016-07-16 23 views
-1

Ich möchte HTML-Dokument aus HTML-String von Javascript erstellen.Wie repliziere ich HTML-Dokument mit Javascript?

Ich kann einfach HTML-Dokument von Javascript durch Variable document erstellen. Ich habe versucht, HTML-Dokument aus HTML-String durch diese Art und Weise zu erstellen:

var parser=new DOMParser(); 
var htmlDoc=parser.parseFromString(htmlstring, "text/html"); 

Es sieht gut aus, ich habe HTML-Dokument aus htmlstring. Aber nach der Verwendung, sehe ich viele Unterschiede hier, zum Beispiel ist document.location.hostname, ich kann nicht aus HTML-Dokument von htmlstring, ich weiß nicht, wie viele Eigenschaften wurde verloren.

Gibt es also sowieso genau zu replizieren document von einem HTML-String?

+0

Eine HTML-Zeichenfolge keinen Standort hat, während ein Dokument schafft. – Schlaus

+0

Was wäre der Ort für eine zufällige Zeichenfolge, die Sie gerade analysiert haben? Ich möchte es wissen? – adeneo

+0

@adeneo 'document.location.hostname' = Domäne. – TomSawyer

Antwort

0

Sie können eine Blob von string, URL.createObjectURL() auf Blob, String.prototype.match() mit RegExp/\/\/(.*)(?=\/)/, Array.prototype.pop() abzurufen Hostnamen von Blob URL

var htmlstr = "<!doctype html><html><body>abc</body></html>"; 
var blob = new Blob([htmlstr], {type:"text/html"}); 
var url = URL.createObjectURL(blob); 
var hostname = url.match(/\/\/(.*)(?=\/)/).pop(); 
console.log(hostname); 
+0

@TomSawyer Du könntest alternativ 'url.split (/^.*\/\/ | \ /.* | \ s /) [1]' verwenden, um 'hostname' zu ​​entsprechen – guest271314

+0

Danke, ich habe noch nie davon gehört. Hat Blob genug Attribute wie DOM? wie 'createElement',' getelementsbytagname'? – TomSawyer

+0

@TomSawyer _ "Hat Blob genug Attribute wie DOM?" _ Nicht sicher, was du meinst? 'Blob' speichert Daten; siehe ['Blob'] (https://developer.mozilla.org/en-US/docs/Web/API/Blob). Was versuchst du zu erreichen? – guest271314