Foros del Web » Programando para Internet » Javascript »

Abrir contenido externo HTML en un div contenedor

Estas en el tema de Abrir contenido externo HTML en un div contenedor en el foro de Javascript en Foros del Web. Hola a tod@s... Estoy intentando abrir páginas html en un div contenedor, es decir, tengo una página index, la cual tiene un menú que llama ...
  #1 (permalink)  
Antiguo 12/07/2014, 08:52
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
Abrir contenido externo HTML en un div contenedor

Hola a tod@s...

Estoy intentando abrir páginas html en un div contenedor, es decir, tengo una página index, la cual tiene un menú que llama a otras páginas html, la idea es que el contenido de esas páginas se cargue en la que tengo el menú en un div contenedor.

Todo marcha bien en internet explorer y en mozilla pero en chrome no, este es mi código:

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
<script type="text/javascript">
$(document).ready(function(){
   $("#nav a").each(function(){
      var href = $(this).attr("href");
      $(this).attr({ href: "#"});
      $(this).click(function(){
         $("#show").load(href);
      });
   });
});
</script>
</head>

<body>
<ul id="nav">
   <li><a href="servicios.html">Servicios</a></li>
   <li><a href="dos.htm">Enlace Dos</a></li>
   <li><a href="link.htm">Otro link</a></li>
   <li><a href="1337.htm">1337</a></li>
   <li><a href="creacionismo.htm">iDIotas</a></li>
</ul>

<div id="show">
</div>
</body>
</html> 
El error que me sale en Chrome (Que hace que no cargue el contenido) es el siguiente:

Código:
XMLHttpRequest cannot load file:///C:/Users/Salome/Desktop/Prueba/servicios.html. Received an invalid response. Origin 'null' is therefore not allowed access.
  #2 (permalink)  
Antiguo 12/07/2014, 09:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Abrir contenido externo HTML en un div contenedor

Según puedo deducir del mensaje, estás intentando ejecutar la carga asíncrona de archivos que están en una ubicación que no corresponde a la de la carpeta de instalación del servidor. Asegúrate de que todos tus archivos estén en dicho directorio, que por lo general suele estar en C:\AppServ\www para AppServ y en C:\wamp\www para WAMP. También te sugiero hacer la carga de los contenidos de esta forma:

Código Javascript:
Ver original
  1. $("#nav a").click(function(event){
  2.     event.preventDefault();
  3.     $("#show").load($(this).prop("href"));
  4. });

De este modo, cancelas el evento que se produce cuando pulsas un enlace, el cual consiste en redireccionar hacia la dirección indicada en su atributo href y luego realizar la cargas en el <div>.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 12/07/2014, 09:47
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Abrir contenido externo HTML en un div contenedor

No te deja acceder a archivos locales por motivos de seguridad.

Se puede configurar para que te lo permita, al menos en win.
  #4 (permalink)  
Antiguo 13/07/2014, 20:55
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
Respuesta: Abrir contenido externo HTML en un div contenedor

Hola, gracias a los dos :)

Pero aunque cambié el javascript y di permisos en chrome sigue sin funcionar en este navegador, me sigue apareciendo el mismo error.

:(
  #5 (permalink)  
Antiguo 13/07/2014, 21:11
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Abrir contenido externo HTML en un div contenedor

¿Probaste con hacerlo usando un servidor? Porque por la ruta que muestra el mensaje de error, me da la impresión de que no estás ejecutando el archivo desde el servidor y para usar Ajax, es necesario trabajar desde uno.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 13/07/2014, 21:49
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
Respuesta: Abrir contenido externo HTML en un div contenedor

es local, de hecho necesito que me funcione así, local.

Funciona bien en IE y en Mozilla, es sólo en chrome donde no lo hace...
  #7 (permalink)  
Antiguo 13/07/2014, 22:44
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Abrir contenido externo HTML en un div contenedor

Me refiero a ejecutar el archivo desde tu servidor local, es decir, si tienes el AppServ o el WAMP, tienes que guardar los archivos con los que trabajarás en las rutas que te indiqué más arriba y cuando los quieras usar, tendrás que ingresar escribiendo en la barra de direcciones la ruta del servidor seguida de la carpeta que contiene a los archivos y finalmente, el nombre del archivo que deseas ver, por ejemplo: http://localhost/pruebas/demo.php. Si pretendes ejecutarlo simplemente dándole doble clic para abrirlo en el navegador, no va a funcionar ni siquiera estando en la carpeta del servidor, tienes que escribir la ruta en la barra de direcciones.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 15/07/2014, 16:54
Avatar de Salome  
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 1.032
Antigüedad: 21 años, 5 meses
Puntos: 1
Respuesta: Abrir contenido externo HTML en un div contenedor

No estoy usando servidor local, no es para usarlo o exponerlo, es para presentar una documentación con html.

Cuando entregue este contenido mi usuario simplemente no tendrá un servidor porque no es necesario y tampoco estará expuesto en internet.

Lo que me ha parecido "curioso" es que sea solo en Chrome donde no se vea.

  #9 (permalink)  
Antiguo 15/07/2014, 18:01
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Abrir contenido externo HTML en un div contenedor

Si no deseas ejecutar esto en un servidor, puedes hacer la carga en un elemento <iframe> al cual solamente le cambiarías el valor del atributo src.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #10 (permalink)  
Antiguo 17/09/2014, 21:15
 
Fecha de Ingreso: octubre-2012
Ubicación: Rio Cuarto,Cordoba,Argentina
Mensajes: 139
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Abrir contenido externo HTML en un div contenedor

me sucede lo mismo, me da ese error en chrome pero no firefox, pudiste resolverlo?
__________________
Juan Pablo A. S.
  #11 (permalink)  
Antiguo 20/09/2014, 11:24
 
Fecha de Ingreso: septiembre-2014
Mensajes: 2
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Abrir contenido externo HTML en un div contenedor

Es cierto lo que te comentan. No es con un servidor HTTP para que lo puedas hacer con ajax.
También es correcto que si no puedes con ajax lo puedes solucionar con iframes.

Te dejo el que funciona con iframe.

Saludos.
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Untitled Document</title>
  5. <script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
  6. <script type="text/javascript">
  7. $(document).ready(function(){
  8.    $("#nav a").each(function(){
  9.       var href = $(this).attr("href");
  10.       $(this).attr({ href: "#"});
  11.       $(this).click(function(){
  12.          //$("#show").load(href);
  13.          $("#show").html('<iframe src="' + href + '" style="border:none;"></iframe> ');
  14.       });
  15.    });
  16. });
  17. </head>
  18.  
  19. <ul id="nav">
  20.    <li><a href="servicios.html">Servicios</a></li>
  21.    <li><a href="dos.htm">Enlace Dos</a></li>
  22.    <li><a href="link.htm">Otro link</a></li>
  23.    <li><a href="1337.htm">1337</a></li>
  24.    <li><a href="creacionismo.htm">iDIotas</a></li>
  25. </ul>
  26.  
  27. <div id="show">
  28. </div>
  29. </body>
  30. </html>

Etiquetas: contenedor, contenido, externo, html, js
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 09:52.