Foros del Web » Programando para Internet » Javascript »

TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos...</div> -->

Estas en el tema de TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos...</div> --> en el foro de Javascript en Foros del Web. Hola. Necesito que finalizado sea un id posterior a la etiqueta </html> ¿alguna idea para capturar ese innerHTML ? <!-- <div id="finalizado">Necesito capturar estos datos</div> ...
  #1 (permalink)  
Antiguo 09/05/2013, 18:29
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Busqueda TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos...</div> -->

Hola.

Necesito que finalizado sea un id posterior a la etiqueta </html>

¿alguna idea para capturar ese innerHTML?

<!-- <div id="finalizado">Necesito capturar estos datos</div> -->
  #2 (permalink)  
Antiguo 09/05/2013, 18:34
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Yo no entendí nada ¬¬
__________________
Drupal Argentina
  #3 (permalink)  
Antiguo 09/05/2013, 18:41
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Cita:
Iniciado por NUCKLEAR Ver Mensaje
no entendí
Gracias por tu interes Nuklear.

Necesito hacer esto dentro de una simple página HTML:
Código:
...código html...
...código html...
...código html...
<!-- comentario id="uno" necesito capturar este innerHTML -->
...código html...
...código html...
...código html...
<script>
	var elid1;
	elid1=document.getElementById('uno').innerHTML;
	alert(elid1);
</script>
...código html...
...código html...
...código html...
Poder hacerlo sería un TRUCASO!, lo intento e intento y no funciona ESE tradicional JavaScript.
  #4 (permalink)  
Antiguo 09/05/2013, 18:51
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Bueno, menos mal te dije que no se entendió nada ¬¬
Según adivino, lo que quieres es hacer esto? http://www.w3schools.com/jsref/met_d...lementbyid.asp
__________________
Drupal Argentina
  #5 (permalink)  
Antiguo 09/05/2013, 18:52
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 137
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

creo que tendras que parsear todo el DOM y usar Regex
__________________
>> abimaelmartell.com
  #6 (permalink)  
Antiguo 09/05/2013, 19:09
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Cita:
Iniciado por abimex Ver Mensaje
usar Regex
Esto no va: getElementsByRegexId().
  #7 (permalink)  
Antiguo 09/05/2013, 19:11
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Cita:
Iniciado por NUCKLEAR Ver Mensaje
quieres es hacer esto...
Exácto!, pero al ser un comentario HTML, la cosa se pone muuuuyyyy..... peluda...
  #8 (permalink)  
Antiguo 09/05/2013, 20:29
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Fijate si te sirve:
Código PHP:
<!DOCTYPE html>
<
html>
<
head>
<
meta charset="utf-8" />
<
title></title>
<!-- 
hola -->
</
head>

<
body>
<!-- 
chau -->
<
script type="text/javascript">
function 
htmlTree(obj){
    var 
str "";
    if (
obj.hasChildNodes()) {
      var 
child obj.firstChild;
      while (
child) {
          if (
child.nodeType === 8) {
               
str +=child.nodeValue '\n';
          }
        if (
child.nodeType === 1) {
          
str += htmlTree(child);
        }
        
child child.nextSibling;
      }
    }
   
    return 
str;
  }
 
   
    
alert(htmlTree(document.documentElement));
</script>
</body>
</html> 
  #9 (permalink)  
Antiguo 09/05/2013, 20:36
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Cita:
Iniciado por Anarko Ver Mensaje
Exácto!, pero al ser un comentario HTML, la cosa se pone muuuuyyyy..... peluda...
lo que querés es una cosa muy extraña, en primer lugar no existe un innerHTML de un comentario, ni siquiera de un elemento dentro de un comentario, lo más aproxinado que podés hacer es
crear un js externo
c_fuente.js

Código:
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", document.URL, true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
source = xmlhttp.responseText;
var a = source.split('id="uno" ');
alert(a[1]);
var b = a[1].split(' -->');
alert('el contenido del comentario es: ' + b[0]);

}
}
xmlhttp.send(null)
y lo llamás en el html que tiene el comentario

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd" >
<html lang='en'>
<head>
<meta http-equiv='Content-type' content='text/html;charset=UTF-8'>
<title>Título</title>
<script type="text/javascript" src="c_fuente2.js"></script>
</head>
<body>
<!-- comentario id="uno" xxxxxxx -->
</body>
</html> 
supongo que con php podés hacerlo más dinámico. Dado que utilizamos ajax, salvo en Firefox, el ejemplo no te va a correr, solo desde el server ó http://localhost
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #10 (permalink)  
Antiguo 10/05/2013, 06:04
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Cita:
Iniciado por Panino5001 Ver Mensaje
Fijate si te sirve
Muchas gracias.

Funciona muy bien si los comentarios están ANTES del JS.

Pero aki no retorna:
Código:
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
	<p>Cantidad de info...</p>
<script type="text/javascript">
function htmlTree(obj){
    var str = "";
    if (obj.hasChildNodes()) {
      var child = obj.firstChild;
      while (child) {
          if (child.nodeType === 8) {
               str +=child.nodeValue + '\n';
          }
        if (child.nodeType === 1) {
          str += htmlTree(child);
        }
        child = child.nextSibling;
      }
    }
   
    return str;
  }
 
   
    alert(htmlTree(document.documentElement));
</script>
<!-- hola -->
	<p>Cantidad de info...</p>
<!-- chau -->
</body>
</html>
  #11 (permalink)  
Antiguo 10/05/2013, 06:14
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Cita:
Iniciado por emprear Ver Mensaje
no existe un innerHTML de un comentario, ni siquiera de un elemento dentro de un comentario
Tu código pinta bien, solo que CAPTURA ABSOLUTAMENTE TODAS LAS MARCAS HTML... (esa es la idea) ?

Finalmente, requiero capturar X comentario y no todos:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd" >
<html lang='en'>
<head>
<meta http-equiv='Content-type' content='text/html;charset=UTF-8'>
<title>T쳵lo</title>
<script type="text/javascript" src="c_fuente2.js"></script>
</head>
<body>
<!-- comentario id="uno" uuuuuu -->
<p>Información...</p>
<!-- comentario id="dos" dddddddddddd -->
<p>Información...</p>
<!-- comentario id="tres" tttttttttttt -->
<p>Información...</p>
</body>
</html> 
<!-- comentario id="cuatro" chanchan... -->
¿es posible?
  #12 (permalink)  
Antiguo 10/05/2013, 06:28
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Creí que sobreentenderías que para recorrer el DOM el mismo debía estar cargado. Era sólo un ejemplo. Aquí nuevamente, masticado y listo para tragar:
Código PHP:
<!DOCTYPE html
<
html
<
head
<
meta charset="utf-8" /> 
<
title></title
<!-- 
hola -->
<
script type="text/javascript"
function 
htmlTree(obj){ 
    var 
str ""
    if (
obj.hasChildNodes()) { 
      var 
child obj.firstChild
      while (
child) { 
          if (
child.nodeType === 8) { 
               
str +=child.nodeValue '\n'
          } 
        if (
child.nodeType === 1) { 
          
str += htmlTree(child); 
        } 
        
child child.nextSibling
      } 
    } 
    
    return 
str
  } 
  
    
onload=function(){alert(htmlTree(document.documentElement));}; 
</script> 
</head> 

<body> 
<!-- chau --> 

</body> 
</html> 
  #13 (permalink)  
Antiguo 10/05/2013, 06:45
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Llámenme loco, pero me parece una burrada usar comentarios para cualquier cosa que no sea un comentario. Eso ya se lo dejamos a Microsoft.

Igual sería interesante para ti mismo que explicaras qué necesidad tienes de hacer algo así. Seguro que hay soluciones menos arcaicas y extrañas que la de leer un comentario.
  #14 (permalink)  
Antiguo 10/05/2013, 07:02
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Cita:
Iniciado por pzin Ver Mensaje
Llámenme loco, pero me parece una burrada usar comentarios para cualquier cosa que no sea un comentario. Eso ya se lo dejamos a Microsoft.

Igual sería interesante para ti mismo que explicaras qué necesidad tienes de hacer algo así. Seguro que hay soluciones menos arcaicas y extrañas que la de leer un comentario.
Tal vez hoy lo sea para la mayoría de los navegadores, gracias a los atributos data de html5, pero en el pasado era útil para asociar metadatos específicos para un nodo o conjunto de nodos y no afectar la validación del doctype o para no tener que crear un doctype personalizado.

Edit: Estaba buscando una página vieja para ilustrar mi último comentario y me encontré con esto: http://james.padolsey.com/javascript...html-comments/ , que de paso tiene una función más elaborada para obtener el contenido de los comments

Última edición por Panino5001; 10/05/2013 a las 07:11
  #15 (permalink)  
Antiguo 10/05/2013, 07:11
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Cita:
Iniciado por Panino5001 Ver Mensaje
Creí que sobreentenderías que para recorrer el DOM el mismo debía estar cargado.
Agradezco tu ayuda, te comento que no captura lo que posiciono luego de la etiqueta </html> que es lo que debo lograr.
Código:
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8" /> 
<title></title> 
<!-- hola -->
<script type="text/javascript"> 
function htmlTree(obj){ 
    var str = ""; 
    if (obj.hasChildNodes()) { 
      var child = obj.firstChild; 
      while (child) { 
          if (child.nodeType === 8) { 
               str +=child.nodeValue + '\n'; 
          } 
        if (child.nodeType === 1) { 
          str += htmlTree(child); 
        } 
        child = child.nextSibling; 
      } 
    } 
    
    return str; 
  } 
  
    
onload=function(){alert(htmlTree(document.documentElement));}; 
</script> 
</head>
<body> 
</body> 
</html>
<!-- chau -->
Efectivamente no comprendo ni tu código ni el
Código:
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", document.URL, true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
source = xmlhttp.responseText;
var a = source.split('id="uno" ');
alert(a[1]);
var b = a[1].split(' -->');
alert('el contenido del comentario es: ' + b[0]);
}
}
xmlhttp.send(null)
que logra capturar TODO, pero yo debo elegir solo UNO de esos comentarios...

Efectivamente sería prefereible para mí correr el código desde la misma pagina y no llamando la función desde un archivo externo, pero creo que no se puede...
  #16 (permalink)  
Antiguo 10/05/2013, 07:16
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Claro, es porque empezamos a examinar a partir del tag html, que en javascript es document.documentElement. Para lo que vos querés necesitás capturar al nodo padre del nodo html, que en javascript es document.documentElement.parentNode:
Código PHP:
<!DOCTYPE html
<
html
<
head
<
meta charset="utf-8" /> 
<
title></title
<!-- 
hola -->
<
script type="text/javascript"
function 
htmlTree(obj){ 
    var 
str ""
    if (
obj.hasChildNodes()) { 
      var 
child obj.firstChild
      while (
child) { 
          if (
child.nodeType === 8) { 
               
str +=child.nodeValue '\n'
          } 
        if (
child.nodeType === 1) { 
          
str += htmlTree(child); 
        } 
        
child child.nextSibling
      } 
    } 
    
    return 
str
  } 
  
    
onload=function(){alert(htmlTree(document.documentElement.parentNode));}; 
</script> 
</head> 

<body> 
<!-- chau --> 

</body> 
</html>
<!-- uf! --> 
  #17 (permalink)  
Antiguo 10/05/2013, 07:22
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Y, por las dudas, la forma de capturar el o los que quieras mediante un índice:
Código PHP:
<!DOCTYPE html
<
html
<
head
<
meta charset="utf-8" /> 
<
title></title
<!-- 
hola -->
<
script type="text/javascript"
function 
htmlTree(obj,s){ 
    var 
=|| []; 
    if (
obj.hasChildNodes()) { 
      var 
child obj.firstChild
      while (
child) { 
          if (
child.nodeType === 8) { 
               
r.push(child.nodeValue ); 
          } 
        if (
child.nodeType === 1) { 
         
r.concathtmlTree(child,r)); 
        } 
        
child child.nextSibling
      } 
    } 
    
    return 
r
  } 
  
    
onload=function(){alert(htmlTree(document.documentElement.parentNode)[2]);}; 
</script> 
</head> 

<body> 
<!-- chau --> 

</body> 
</html>
<!-- uf! --> 
  #18 (permalink)  
Antiguo 10/05/2013, 07:26
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Cita:
Iniciado por Panino5001 Ver Mensaje
necesitás capturar al nodo padre del nodo html, que en javascript es document.documentElement.parentNode
Muchas gracias.
Funciona muy bien.

En cuanto a capturar solo el comentatio id="cfinal":
Código:
<!-- <p id="com_final">Aki una info particular...</p>-->
Eso podria hacerse?
  #19 (permalink)  
Antiguo 10/05/2013, 07:27
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Fijate en mi último post
Edit: los comments no tienen atributos, sólo texto (por lo menos yo no pude capturar atributos vía javascript). Lo que podés hacer es buscar dentro del texto de los comments capturados con expresiones regulares. O buscar los comentario por su posición en el DOM. Ahora (por lo que te mostré acerca de document.documentElement) sabés que la función comienza a buscar los comentarios a partir del nodo que le indiques, lo cual te facilitará la tarea.

Última edición por Panino5001; 10/05/2013 a las 07:41
  #20 (permalink)  
Antiguo 10/05/2013, 07:40
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Cita:
Iniciado por Panino5001 Ver Mensaje
comentarios a partir del nodo que le indiques
Código:
var child = obj.firstChild; 
      while (child) { 
          if (child.nodeType === 8){...
Cómo le digo que busque lo que halla LUEGO del nodo </html>?
  #21 (permalink)  
Antiguo 10/05/2013, 08:00
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Cita:
Iniciado por Anarko Ver Mensaje
Tu código pinta bien, solo que CAPTURA ABSOLUTAMENTE TODAS LAS MARCAS HTML... (esa es la idea) ?

Finalmente, requiero capturar X comentario y no todos:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd" >
<html lang='en'>
<head>
<meta http-equiv='Content-type' content='text/html;charset=UTF-8'>
<title>T쳵lo</title>
<script type="text/javascript" src="c_fuente2.js"></script>
</head>
<body>
<!-- comentario id="uno" uuuuuu -->
<p>Información...</p>
<!-- comentario id="dos" dddddddddddd -->
<p>Información...</p>
<!-- comentario id="tres" tttttttttttt -->
<p>Información...</p>
</body>
</html> 
<!-- comentario id="cuatro" chanchan... -->
¿es posible?
mi código captura el contenido del comentario segun la cadena por donde hagas el split, y sin importar en que parte del documento de encuentre el comentario, dentro o fuera del html

<!-- comentario id="uno" uuuuuu -->
si hacés
Código:
var a = source.split('id="uno" ');
captura uuuuuu

<!-- comentario id="dos" dddddddddddd -->
si hacés
Código:
var a = source.split('id="dos" ');
captura dddddddddddd

Etc

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #22 (permalink)  
Antiguo 10/05/2013, 08:06
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Para capturar el último, sin darle muchas vueltas:
Código PHP:
<!-- hostias! -->
<!
DOCTYPE html
<
html
<
head
<
meta charset="utf-8" /> 
<
title></title
<!-- 
hola -->
<
script type="text/javascript"
function 
htmlTree(obj,s){ 
    var 
=|| []; 
    if (
obj.hasChildNodes()) { 
      var 
child obj.firstChild
      while (
child) { 
          if (
child.nodeType === 8) { 
               
r.push(child.nodeValue); 
          } 
        if (
child.nodeType === 1) { 
         
r.concathtmlTree(child,r)); 
        } 
        
child child.nextSibling
      } 
    } 
    
    return 
r
  } 
  
    
onload=function(){var chtmlTree(document.documentElement.parentNode);alert(c[c.length-1]);}; 
</script> 
</head> 

<body> 
<!-- chau --> 

</body> 
</html>
<!-- uf! --> 
  #23 (permalink)  
Antiguo 10/05/2013, 08:20
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Respuesta: TRUCASO para capturar este innerHTML: <!-- <div id="fin">datos y + datos..

Cita:
Iniciado por emprear Ver Mensaje
si hacés
Código:
var a = source.split('id="uno" ');
captura uuuuuu
Cita:
Iniciado por Panino5001 Ver Mensaje
Para capturar el último, sin darle muchas vueltas...
Estimados Webmasters, muy agradecido por sus orientaciónes paso a paso.

El "trucaso" ha sido un éxito !



UN EXITO!!!...

Etiquetas: html, innerhtml
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 20:15.