En la parte inferior de mi página HTML, he declarado un div con el texto de una función de JavaScript.
<div style="display:none" id="newwinner"> function newwin() { nwin = window.open("","_blank", "scrollbars,menubar,toolbar, status,resizable,location"); content = document.body.innerHTML; if(nwin != null) { nwin.document.write("<html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /></head><body>"+content+"</body></html>"); nwin.document.close(); } } </div>
Ahora quiero insertar eso en otro lugar. Esto obtiene el código JavaScript:
nw = document.getElementById("newwinner"); var g = document.createElement("script"); g.text = nw.innerHTML; var tab = document.getElementById("Maintable"); tab.insertBefore(g, tab.childNodes[0]);
Siempre me sale el mismo error:
SyntaxError no detectado: falta) después de la lista de argumentos
El problema es el segundo nivel de comillas, como 'Content-Type'
. Parece que las comillas simples se convierten en comillas dobles aquí. Eso es lo que veo tanto en la consola de Chrome como cuando hago una alert()
.
Probé muchas variaciones, escapando con barras invertidas, usando comillas dobles escapadas, usando "
, pero ninguno de ellos resolvió el problema. ¿Qué puedo hacer para solucionar esto?
Tenga en cuenta que esto es específico para un nodo de secuencia de comandos. Cuando uso un DIV en su lugar, funciona.