document.getElementById("mDiv").style.backgroundImage = "url('img.jpg')";
Was Sie verstehen müssen, ist, dass der Inhalt Ihrer Seite im Browser nicht als Markup-Zeichenfolge gespeichert wird. Die Seite ist eine Hierarchie von Objekten und Eigenschaften.
Wenn Sie die oben oder die entsprechenden Versionen mit setAttribute
/attr()
die anderen Antworten auszuführen sind darauf hindeutet, wird der Browser speichert url('img.jpg')
überall nicht unbedingt einen String: es ist das Parsen es die URL img.jpg
und dass halten zu extrahieren. Die Information darüber, ob Sie einfache Anführungszeichen, doppelte Anführungszeichen oder keine Anführungszeichen verwendet haben, um die URL zu umbrechen, ist für immer verschwunden.
Wenn Sie dann nach einem serialisierten Formular als Markup fragen, zum Beispiel indem Sie das style
Attribut lesen oder das innerHTML
des Dokuments greifen, muss der Browser einige Markups aus den Eigenschaften neu erstellen. Der Browser kann alle Arten von willkürlichen Möglichkeiten wählen, um diese Daten zu serialisieren, solange die Ausgabe den gleichen Dokumentinhalt darstellt.
Es gibt keinen Grund zu erwarten, dass die Ausgabe dem Markup sehr ähnlich sieht.Insbesondere kann der Browser verschiedene einfache oder doppelte Anführungszeichen wählen; Es kann Attribute anders ordnen; es kann verschiedene Leerzeichen enthalten; und so weiter.
Result:
<div id="mDiv" style="background-image: url("img.jpg")" ></div>
Dies ist jedoch nicht gültig HTML, wegen der verschachtelten Anführungszeichen. Ich denke, Sie schauen sich das Element im DOM Inspector an, das in manchen Browsern nicht unbedingt eine HTML-gültige Ausgabe anzeigt. Wenn Sie die innerHTML
des übergeordneten Elements erhalten, werden Sie sehen, dass die inneren Anführungszeichen zu "
maskiert werden.
Ich glaube nicht, dass mit Ihrem Code etwas nicht stimmt. So zeigt der DOM-Viewer des Browsers Attribute an. – Barmar
Haben Sie ein Problem wegen des Angebots? – Barmar
Die Anführungszeichen in der URL sind nicht erforderlich. Sie können einfach 'background-image: url (img2.jpg)' – Dekel