Foros del Web » Programando para Internet » Javascript »

Escapar comillas

Estas en el tema de Escapar comillas en el foro de Javascript en Foros del Web. Hola ¿Como puedo escapar estas comillas? setTimeout( " vm_mover(\'' + elemID + \'', " + x + " ) " ,5000); Gracias...
  #1 (permalink)  
Antiguo 14/05/2009, 13:45
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Escapar comillas

Hola

¿Como puedo escapar estas comillas?

setTimeout("vm_mover(\'' + elemID + \''," + x + ")",5000);

Gracias
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #2 (permalink)  
Antiguo 14/05/2009, 13:51
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Escapar comillas

No entendí muy bien la agrupación de variables, pero prueba así:
Código javascript:
Ver original
  1. setTimeout('wm_mover(' + elemID + ', "' + x + '");', 5000);
Por otro lado, en cuestión de rendimiento, no es bueno usar cadenas de texto en ese contexto.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 15/05/2009, 13:01
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: Escapar comillas

Hola, David

No se si te entendí, ¿te referias a esto?

Código javascript:
Ver original
  1. setTimeout('vm_mover(elemento, alto);',15);

Imprimo todo el script. Lo uso para plegar y desplegar una ventana con datos de la bd, para ello más adelante usaré AJAX, de ahí que quiera escapar las dobles comillas. Tal y como está ahora funciona. ¿Proponéis algún otro cambio?

Código javascript:
Ver original
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <script type="text/javascript">
  6. var msg = new Array('mensaje1,mensaje2,mensaje3');
  7. var Ventana_Modal = {};
  8. Ventana_Modal.banner = {
  9.  dimensiones : {
  10.  ancho : '207',
  11.  largo : '123',
  12.  bajar_pos : '-127',
  13.  subir_pos : '-4'
  14.  }
  15. };
  16. Ventana_Modal.banner.hoja = 'dimensiones';
  17. // Variables Globales
  18. var vmDivID = 'VentanaTipoMsgr';
  19. var Retraso = 2;
  20. // Construimos el banner
  21. var codigo_html = '';
  22. // CSS
  23. codigo_html += '<style type=\'text/css\'><!--';
  24. codigo_html += '#' + vmDivID + '{ z-index:15000; right:2px; bottom:-2px; position:fixed; padding:0px; width:' + Ventana_Modal.banner[Ventana_Modal.banner.hoja].ancho + 'px; height:' + Ventana_Modal.banner[Ventana_Modal.banner.hoja].largo + 'px; background:transparent url(cuerpo_ventanamodal.gif); }';
  25. codigo_html += '#' + vmDivID + ' a { font-family:tahoma; font-size:9px; color:#59616E; font-weight:bold; text-decoration:none; }';
  26. codigo_html += '-->';
  27. codigo_html += '</style>';
  28.  
  29. // Div
  30. codigo_html += '<div id=\'' + vmDivID + '\' style=\'bottom:-200px; display:none;\'>';
  31. codigo_html += '<div style=\'position:absolute; top:3px; right:5px;\'><a id=\'btn_vm_cerrar\' href=\'javascript:void(0);\' onclick=\'vm_mover(\'' + vmDivID + '\',' + Ventana_Modal.banner[Ventana_Modal.banner.hoja].bajar_pos + ',\'bajar\');\'><img src=\'cuerpo_cerrar.gif\' width=\'15px\' height=\'20px\' border=\'0\' /></a></div>';
  32. codigo_html += '<div style=\'padding:6px 6px 6px 3px; text-align:left; font-family:tahoma; font-size:11px; font-weight:bold; color:#000000;\'>Tienes (<b>3</b>) mensajes sin leer</div>';
  33. codigo_html += '<div id=\'CuerpoMsg\' style=\'position:absolute; top:30px; right:5px; left:5px; text-align:left; color: #59616E; font-size: 9px; font-family:verdana;\'>' + msg[0] +'</div>';
  34. codigo_html += '<div style=\'clear:both;\'></div>';
  35. codigo_html += '</div>';
  36. document.write(codigo_html);
  37.  
  38. vm_retraso(Retraso);
  39.  
  40. //--[Funciones]-----------------------------------------------------------------//
  41.  
  42. var btn_vm_cerrar_elem = document.getElementById('btn_vm_cerrar');
  43. btn_vm_cerrar_elem.onclick = function (){
  44. vm_mover(vmDivID,Ventana_Modal.banner[Ventana_Modal.banner.hoja].bajar_pos,'bajar');
  45. return false;
  46. }
  47.  
  48.  
  49. //var btn_vm_siguiente_msg = document.getElementById('btn_vm_siguiente');
  50. //btn_vm_siguiente_msg.onclick = function (){
  51. //vm_siguiente(elID);
  52. //return false;
  53. //}
  54.  
  55. function vm_siguiente(mensajeID) {
  56.  var soportado = (document.getElementById);
  57. if (!soportado) return;
  58.  
  59. var elMsg = document.getElementById('CuerpoMsg');
  60. elMsg.innerHTML = msg[mensajeID];
  61. }
  62.  
  63.  
  64. function vm_retraso(seg){
  65. seg = seg || 0;
  66. setTimeout('vm_mover(vmDivID,' + Ventana_Modal.banner[Ventana_Modal.banner.hoja].subir_pos + ');',1000 * seg);
  67. setTimeout('vm_mover(vmDivID,' + Ventana_Modal.banner[Ventana_Modal.banner.hoja].bajar_pos + ',\'bajar\');',10000 * seg);
  68. }
  69.  
  70.  
  71. var elemento
  72. var alto
  73. function vm_mover(elemID,x,direccion){
  74. elemento = elemID
  75. alto = x
  76.  
  77.  var soportado = (document.getElementById);
  78. if (!soportado) return;
  79. var DIVruta = document.getElementById(elemento);
  80. var Cortina = parseInt(DIVruta.style.bottom);
  81.  
  82. DIVruta.style.display = 'block';
  83. if(direccion == 'bajar'){
  84.  
  85. if(Cortina > x){
  86. Cortina -= 5;
  87. DIVruta.style.bottom = Cortina + 'px';
  88. setTimeout('vm_mover(elemento,alto,\'bajar\');',15);
  89. }
  90. }else{
  91. if(Cortina < x){
  92. Cortina += 5;
  93. DIVruta.style.bottom = Cortina + 'px';
  94. setTimeout('vm_mover(elemento, alto);',15);
  95. }
  96.  }
  97. }
  98. </script>
  99. </body>
  100. </html>

Gracias
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:47.