I create a JSoup Document which includes two <script type="application/javascript">/* .. */</script>
elements.
The Issue: When I call .html()
or .toString()
JSoup will escape my JavaScript.
if (foo && bar)
gets
if (foo && bar)
Is it possible to configure JSoup to ignore <script>
Elements while escaping??
This is (basically) how I create my jsoup document.
final Document doc = Document.createShell("");
final Element head = doc.head();
head.appendElement("meta").attr("charset", "utf-8");
final String myJS = ...;
head.appendElement("script").attr("type", "application/javascript").text(myJS);
My current workaround is to replace a placeholder with String.replace
on .html()
. But this is kinda hacky.
head.appendElement("script").attr("type", "application/javascript").text("$MYJS$");
String s = doc.html();
s = s.replace("$MYJS$", myJS);
I create a JSoup Document which includes two <script type="application/javascript">/* .. */</script>
elements.
The Issue: When I call .html()
or .toString()
JSoup will escape my JavaScript.
if (foo && bar)
gets
if (foo && bar)
Is it possible to configure JSoup to ignore <script>
Elements while escaping??
This is (basically) how I create my jsoup document.
final Document doc = Document.createShell("");
final Element head = doc.head();
head.appendElement("meta").attr("charset", "utf-8");
final String myJS = ...;
head.appendElement("script").attr("type", "application/javascript").text(myJS);
My current workaround is to replace a placeholder with String.replace
on .html()
. But this is kinda hacky.
head.appendElement("script").attr("type", "application/javascript").text("$MYJS$");
String s = doc.html();
s = s.replace("$MYJS$", myJS);
Share
Improve this question
edited Aug 3, 2015 at 15:13
boop
asked Aug 3, 2015 at 14:29
boopboop
7,80715 gold badges59 silver badges100 bronze badges
1
- I've updated my answer. – Alkis Kalogeris Commented Aug 7, 2015 at 14:47
1 Answer
Reset to default 7The outerHtmlHead method can no longer be overridden.
This is what I use:
head
.appendElement("script")
.attr("type","text/javascript")
.appendChild(new DataNode(getJavaScript(),""));