Why am I getting...
SyntaxError: unterminated string literal
...in Firefox and...
Uncaug
Break up the string "</script>"
(in the javascript code); it will be interpreted as an actual closing script tag rather than the string literal you intend.
$(document).ready(function () {
function addJSBeforeEndBody(code) {
$('body').append('<script>' + code + '</scr' + 'ipt>');
}
addJSBeforeEndBody('$(document).ready(function() { console.log("It works now."); });');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
'<script>'+code.toString()+'<\/script>'
The browser closes the script element when it sees '</script>'
, indicating the script close tag. Escaping the slash keeps the browser in text interpreting mode.
Or breaking it up as mentioned:
"<script>"+code.toString()+"<"+"/script>"