Meine Lösung ist ähnlich wie die von lolo oben. Allerdings füge ich den HTML-Code über die JavaScript-Funktion document.write ein, anstatt jQuery zu verwenden:
a.html:
<html>
<body>
<h1>Put your HTML content before insertion of b.js.</h1>
...
<script src="b.js"></script>
...
<p>And whatever content you want afterwards.</p>
</body>
</html>
b.js:
document.write('\
\
<h1>Add your HTML code here</h1>\
\
<p>Notice however, that you have to escape LF's with a '\', just like\
demonstrated in this code listing.\
</p>\
\
');
Der Grund für mich gegen die Verwendung von jQuery ist, dass jQuery.js ~90kb groß ist, und ich möchte die Menge der zu ladenden Daten so klein wie möglich halten.
Um die korrekt escapte JavaScript-Datei ohne viel Arbeit zu erhalten, können Sie den folgenden sed-Befehl verwenden:
sed 's/\\/\\\\/g;s/^.*$/&\\/g;s/'\''/\\'\''/g' b.html > escapedB.html
Oder verwenden Sie einfach das folgende praktische Bash-Skript, das als Gist auf Github veröffentlicht wurde und das alle notwendigen Arbeiten automatisiert, indem es b.html
à b.js
: https://gist.github.com/Tafkadasoh/334881e18cbb7fc2a5c033bfa03f6ee6
Kredite an Greg Minshall für den verbesserten sed-Befehl, der auch umgekehrte Schrägstriche und einfache Anführungszeichen umgeht, was mein ursprünglicher sed-Befehl nicht berücksichtigt hat.
Alternativ können Sie bei Browsern, die Folgendes unterstützen Vorlagenliterale funktioniert auch das Folgende:
b.js:
document.write(`
<h1>Add your HTML code here</h1>
<p>Notice, you do not have to escape LF's with a '\',
like demonstrated in the above code listing.
</p>
`);