Código HTML:
sdg sdg "sdg"<br /> <br /> sdg 'gsgd' "sdg"<br /> <br /> sdg"
¿Alguna idea de cómo solucionarlo?
Gracias
Fede
| |||
Pasando valores a funciones Tengo que pasar la siguiente cadena a una función de JavaScript: Código HTML: sdg sdg "sdg"<br /> <br /> sdg 'gsgd' "sdg"<br /> <br /> sdg" ¿Alguna idea de cómo solucionarlo? Gracias Fede |
| |||
Hola thunder.scripts Prueba a ver si te sirve. <html> <head> <title>Untitled</title> </head> <script language=JavaScript type=text/javascript> <!-- function test_(s){ // con las etiqueta HTML alert(s.innerHTML) // para extraer solo el texto contenido entre div // eliminando las etiquetas HTML if(s.innerText){ alert(s.innerText) } else if(s.textContent){ alert(s.textContent) } } //--> </script> <body> <div id="texto" onclick ="test_(this)"> sdg sdg "sdg"<br /> <br /> sdg 'gsgd' "sdg"<br /> <br /> sdg"</div> </body> </html> Saludos :) |
| |||
Hola caricatos Tienes razón innerText creo que solo va en IE, no se si Opera lo utiliza, pero para Mozilla tienes la propiedad textContent, supongo que tambien valdra para Firefox y NS6+, no lo he probado, la verdad no estoy muy seguro. Si Opera no soporta ninguna de las dos propiedades creo que debe de tener una equivalente. Pero como dices lo mejor es saber como se obtiene la cadena. Saludos :) |
| |||
Gracias a los tres, pero eliminar el html no es una opción (igualmente la cadena la obtengo por medio php, así que podría eliminarlos ahí si fuera necesario). Por ahora lo solucioné reemplazando las comillas dobles por un texto alternativo en php y volviendo a reemplazar este texto a comillas dentro de la función de js. Por ahora funciona, pero es como medio 'atado con alambre' Si alguno tiene una idea de lo que podría hacer se lo agradecería mucho ;) Suerte Fede |
| |||
Claro: Código PHP: Fede |
| |||
Hola de nuevo. Parece que he tenido suerte, en este caso solo podrias poner secuencias de escape en las comillas simples, ya que el codigo javascript se encuentra dentro de una etiqueta html. Una forma de solucionar el problema seria esta: Código PHP: Esto daria como resultado : Código HTML: <a href="javascript:void(0)" onclick="alert(' \u0022comillas dobles\u0022 \u0027comillas simples\u0027' )">ver</a> Saludos :) |
| |||
Eso es lo que hice yo, pero, ¿por qué u0022? |
| |||
\uvalor hexadecimal es la forma de javascript de representar caracteres unicode, no estoy muy seguro pero creo que se implanto en Javascript 1.3, si es asi funcionara en IE5+ y NS6+. No tengo IE4 ni NS4 para comprobar si lo soporta, pero supongo que a estas altura nadie lo utiliza. Al parecer cuando javascript esta dentro de una etiqueta HTML, <a href="javascript:void(0)" onclick="alert(' \u0022comillas dobles\"\u0027comillas simples\u0027' );return false;"> , html entiende las comillas dobles como final del valor del atributo y ya que HTML no entiende \u0022 como comillas dobles evitamos el problema. Saludos :) |
| |||
ah es algo parecido a lo que hice yo, nada más que \u0022 son las comillas en sí, gracias! Igualmente, (lo pude probar en opera nada más) si uso \u0022 javascript no me los reconoce como comillas y tengo que usar str.replace para volver a convertir los \u* a comillas dobles o simples, como corresponda. Quizás tiene algo que ver con que el contenido no lo muestro en un alert, sino dentro de un elemento HTML usando innerHTML. Igualmente funciona perfectamente reemplazándolo a mano, así que no hay drama ;) Mil gracias Fede |