Comillas dentro de comillas dentro de comillas en javascript

Comillas dentro de comillas dentro de comillas en javascript

Y ahí estaba yo, utilizando mootools para la carga asincrónica, necesitaba que una parte de la pantalla principal no sólo se actualizara automáticamen

HTML5 y navegadores
Optimizar WordPress para una carga rápida con Autoptimize
Estructura básica de una página en PHP
Servidor apache para desarrollar PHP
Usar Google Chrome como apoyo para el desarrollo web

Y ahí estaba yo, utilizando mootools para la carga asincrónica, necesitaba que una parte de la pantalla principal no sólo se actualizara automáticamente, sino que creara (también automáticamente) los elementos que la conforman, y que a su vez generara el código que se usaría al darle click y cargara el controlador que a su vez cargaría la vista necesaria.

Por lo que utilicé el muy conocido

$('elemento').set('html', 'CODIGO');

Dentro de donde va el código generaba el código html que a su vez tenía un onClick que mandaba a llamar a una función javascript pasándole varios parámetros, uno de ellos una cadena.

Por lo que para poner las cosas en terminos sencillos (ya que todo este código se genera en una biblioteca llamada por un controlador y cargada por una vista) quedaría de la sig manera.

//COMO QUEDARÍA LA PARTE PHP EN TÉRMINOS SENCILLOS
$code = <<<EOD
<input type="button" onClick="jsAccion(0, 1, 2, 'cadena')">
EOD;

Aquí vemos que la parte de la cadena va cerrada entre comillas simples para que no interfiera con las comillas dobles y hasta aquí todo bien, el problema es el siguiente:

//PARTE JAVASCRIPT EN TÉRMINOS SENCILLOS
$('elemento').set('html', '<?php echo $code?>');
Lo que me arrojaba un error puesto que según javascript primero cargo comilla simple, dentro (en la variable de php) se encuentra comillas dobles y de nuevo comillas simple, por lo cual hay problema entre las 2.
Leí un buen blog (http://blog.opensourceopportunities.com/2007/10/nested-nested-quotes.html) e intenté colocar “, ‘, \”, \’  y todos mis esfuerzos fueron en vano.
(NOTA: en firefox si ejecutaba el try catch en javascript, mientras que en chromium 12 no)
Hasta que leyendo los comentarios vi que alguien utilizó &quot, lo intenté y tampoco, así que se me ocurrió usar sólo &quot y ¡listo! Funcionó a la perfección.
$code = <<<EOD
<input type="button" onClick="jsAccion(0, 1, 2, &quote;cadena&quote;)">
EOD;

Con esto se puede tener ” ‘ ”  ” ‘ “, es decir comillas dentro de comillas dentro de comillas.

COMMENTS

WORDPRESS: 0